http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2020-06-22T06:58:43Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25244
2020-06-22T06:58:43Z
isao sano
sano@tejimaya.com
<ul><li><strong>関連している</strong> <i><a class="issue tracker-5 status-10 priority-4 priority-default" href="/issues/4433">Task(タスク) #4433</a>: JSON API ドキュメントの見直しと修正</i> を追加</li></ul>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25301
2020-06-25T03:12:06Z
kaoru n
<ul><li><strong>対象バージョン</strong> を <i>OpenPNE 3.10.x</i> から <i>OpenPNE 3.11.x</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25418
2020-08-19T06:36:00Z
isao sano
sano@tejimaya.com
<ul></ul><p>レスポンスステータスは「SUCCESS」となるが内容が空である。</p>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25539
2021-02-03T05:46:37Z
kaoru n
<ul></ul><p>パラメータの順によって、 curl の結果が変わる<br />(1) count, apiKey の場合<br /><pre>
$ curl http://{snip}/api.php/activity/mentions.json?count=10&apiKey={snip}
$ 401 Unauthorized: apiKey parameter not specified.
</pre></p>
<p>(2) apiKey, count の場合<br /><pre>
$ curl http://{snip}/api.php/activity/mentions.json?apiKey={snip}&count=10
$ {"status":"success","data":[]}
</pre></p>
<p>ブラウザでアクセスした場合は、どちらの場合も<br /><pre>
{
status: "success",
data: [ ]
}
</pre></p>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25540
2021-02-03T08:06:50Z
kaoru n
<ul></ul><p><a class="external" href="https://houou.github.io/api.php/activity_mentions.html">https://houou.github.io/api.php/activity_mentions.html</a><br />には<br /><pre>
activity/mentions.json 概要
自分のスクリーンネームが含まれているメンションタイムラインを取得してきます。
</pre><br />と記載があるが、スクリーンネームは opTimelinePlugin のすでに削除された機能。</p>
<p>また、この API は、テンプレートを使用し且つ template_param に指定された API Key を持つメンバーIDが本文に設定されている投稿を検索する機能。</p>
<p><a class="external" href="https://github.com/openpne/OpenPNE3/blob/master/lib/util/opActivityQueryBuilder.class.php#L248-L260">https://github.com/openpne/OpenPNE3/blob/master/lib/util/opActivityQueryBuilder.class.php#L248-L260</a><br /><pre><code class="php syntaxhl"><span class="CodeRay"> <span class="keyword">protected</span> <span class="keyword">function</span> <span class="function">buildMentionQuery</span>(<span class="local-variable">$query</span>)
{
<span class="local-variable">$friendQuery</span> = <span class="local-variable">$this</span>->buildFriendQuery(<span class="local-variable">$query</span>->createSubquery())
->andWhereLike(<span class="string"><span class="delimiter">'</span><span class="content">a.template_param</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">|</span><span class="delimiter">'</span></span>.<span class="local-variable">$this</span>->viewerId.<span class="string"><span class="delimiter">'</span><span class="content">|</span><span class="delimiter">'</span></span>);
<span class="local-variable">$snsQuery</span> = <span class="local-variable">$this</span>->buildAllMemberQuery(<span class="local-variable">$query</span>->createSubquery())
->andWhereLike(<span class="string"><span class="delimiter">'</span><span class="content">a.template_param</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">|</span><span class="delimiter">'</span></span>.<span class="local-variable">$this</span>->viewerId.<span class="string"><span class="delimiter">'</span><span class="content">|</span><span class="delimiter">'</span></span>);
<span class="local-variable">$subQuery</span> = <span class="predefined">array_map</span>(<span class="predefined">array</span>(<span class="local-variable">$this</span>, <span class="string"><span class="delimiter">'</span><span class="content">trimSubqueryWhere</span><span class="delimiter">'</span></span>), <span class="predefined">array</span>(<span class="local-variable">$friendQuery</span>, <span class="local-variable">$snsQuery</span>));
<span class="local-variable">$query</span>->andWhere(<span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content"> OR </span><span class="delimiter">'</span></span>, <span class="local-variable">$subQuery</span>));
<span class="keyword">return</span> <span class="local-variable">$query</span>;
}
</span></code></pre></p>
<p><a class="external" href="https://github.com/openpne/OpenPNE3/blob/master/apps/api/modules/activity/actions/actions.class.php#L266-L268">https://github.com/openpne/OpenPNE3/blob/master/apps/api/modules/activity/actions/actions.class.php#L266-L268</a><br /><pre><code class="php syntaxhl"><span class="CodeRay"> <span class="local-variable">$query</span> = <span class="local-variable">$builder</span>->buildQuery()
->andWhere(<span class="string"><span class="delimiter">'</span><span class="content">in_reply_to_activity_id IS NULL</span><span class="delimiter">'</span></span>)
->andWhere(<span class="string"><span class="delimiter">'</span><span class="content">foreign_table IS NULL</span><span class="delimiter">'</span></span>)
->andWhere(<span class="string"><span class="delimiter">'</span><span class="content">foreign_id IS NULL</span><span class="delimiter">'</span></span>)
->limit(<span class="integer">20</span>);
</span></code></pre></p>
<p>opDiaryPlugin, opCommunityTopicPlugin では、テンプレートを使用して自動投稿を行うが、メンバーIDは埋め込まない。<br />参考: <a class="issue tracker-1 status-13 priority-4 priority-default closed child" title="Bug(バグ): テンプレートを使用するアクティビティの表示時に、対応するテンプレートが activity_template.yml 内に存在しない場合が想定されていない (Won't fix(対応せず))" href="http://redmine.openpne.jp/issues/2773">#2773</a><br />opCommunityTopicPlugin の activity_template.yml: <a class="external" href="https://github.com/tejimaya/opCommunityTopicPlugin/blob/master/config/activity_template.yml">https://github.com/tejimaya/opCommunityTopicPlugin/blob/master/config/activity_template.yml</a><br />opDiaryTopicPlugin の activity_template.yml: <a class="external" href="https://github.com/tejimaya/opDiaryPlugin/blob/master/config/activity_template.yml">https://github.com/tejimaya/opDiaryPlugin/blob/master/config/activity_template.yml</a></p>
<p><a class="issue tracker-1 status-12 priority-4 priority-default closed" title="Bug(バグ): JSON API activity/mentions.json が GET に対応していない (Invalid(無効))" href="http://redmine.openpne.jp/issues/4453#note-3">#4453-3</a> にて</p>
<blockquote>
<p>レスポンスステータスは「SUCCESS」となるが内容が空である。</p>
</blockquote>
<p>とされているが、これは template_param の値に「|{指定された API Key を持つメンバーID}|」が含まれていないため。</p>
<p><a class="issue tracker-1 status-12 priority-4 priority-default closed" title="Bug(バグ): JSON API activity/mentions.json が GET に対応していない (Invalid(無効))" href="http://redmine.openpne.jp/issues/4453#note-4">#4453-4</a> に記載した通り、curl実行時のパラメータ順が影響している件について修正が必要。<br />またJSON APIドキュメントに下記のような注釈が必要だと思います。</p>
<pre>
このAPIを利用してデータ取得を行うには、投稿時にテンプレートを利用し、且つ「template_param」に、スクリーンネームではなくメンバーIDが設定されている必要がある。
現時点で、このような投稿を行う機能はドキュメント製作者においては未確認である。
</pre>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25541
2021-02-03T08:39:04Z
kaoru n
<ul></ul><blockquote>
<p><a class="issue tracker-1 status-12 priority-4 priority-default closed" title="Bug(バグ): JSON API activity/mentions.json が GET に対応していない (Invalid(無効))" href="http://redmine.openpne.jp/issues/4453#note-4">#4453-4</a> に記載した通り、curl実行時のパラメータ順が影響している件について修正が必要。</p>
</blockquote>
<p>curl でリクエストを投げる際に複数パラメータを「&」でつないで渡す場合は、「&」をエスケープしなければいけないようです。</p>
<p>参照: <a class="external" href="https://hkdnet.hatenablog.com/entry/2015/09/19/133415">https://hkdnet.hatenablog.com/entry/2015/09/19/133415</a></p>
<blockquote>
<p>複数パラメータを利用している場合URLの&がシェルの&(バックグラウンドプロセス)と競合してしまい、違うコマンドとして認識されてしまう。</p>
</blockquote>
<p>であるので、ドキュメントの修正のみで良さそうです。<br /><pre>
$ curl http://{snip}/api.php/activity/mentions.json?count=10\&apiKey={snip}
$ curl http://{snip}/api.php/activity/mentions.json?apiKey={snip}\&count=10
</pre></p>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25542
2021-02-03T08:41:26Z
kaoru n
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>担当者</strong> を <i>kaoru n</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #4453: JSON API activity/mentions.json が GET に対応していない
http://redmine.openpne.jp/issues/4453?journal_id=25561
2021-02-05T06:34:46Z
kaoru n
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Invalid(無効)</i> に変更</li></ul><p>activity/mentions.json については、使用できる機能が現状存在しないためドキュメントから削除します</p>