Plugin/追加プラグイン/twitter.inc.php(OAuth対応版)の変更点

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • 移動:バックアップ
  • 最新のバージョン:2024-03-06 11:59:17
  • バージョン:(Rev:Vgl0EAOnZr)2014-05-26 18:38:55

OldNew差分
1-#contents
2-
3-* 概要 [#1w091b1]
4-Twitterのツイートを拾い、PukiWikiページに埋め込むプラグインです。
5-内部で処理を行っているため、実装によってはNGワードによる対象のブロックも可能です。
6-[[http://d.hatena.ne.jp/stealthinu/20100607/p2]]で公開されているプラグインをOAuthに対応し、JavaScript自動更新を外したものです。
7-LICENSE:GPL version2.0
8-
9-PHP5.5環境でPukiWikiが動作しないため、PukiWiki環境下での動作検証は行っておりません。
10-動作はget_passage関数に依存しています。実装されていない場合は書き換えてください。
11-
12-* ダウンロード [#rd7mteo]
13-&attachref(plugin/twitter.inc.php);
14-ファイルはzipファイルです。
15-ブラウザによっては拡張子が付与されない場合もあります。
16-その場合「.zip」をファイル名の末尾に追加してください。
17-
18-* 特徴 [#gowgxok]
19--OAuth認証によるツイートの取得
20--取得したツイートのHTMLへの埋め込み
21--取得したデータのキャッシュ(デフォルトで10分)
22--twitter.inc.php一部互換
23--JavaScriptによる自動更新はありません
24-
25-自動更新を外した理由として3点あり
26--本Pluginはキャッシュを実装したため、更新時間に制限が発生した
27--TwitterAPIに認証が必須になったため、回数制限が発生した
28--TwitterAPIに認証が必須になったため、Pluginを通して取得しなければならなくなった
29-上記の3点です。
30-
31-* 設定項目 [#awf5djc]
32-|~ラベル|~説明|
33-|PLUGIN_TWITTER_API_KEY|アプリケーション作成時に表示されるAPI key|
34-|PLUGIN_TWITTER_API_SECRET|アプリケーション作成時に表示されるAPI secret|
35-|PLUGIN_TWITTER_ACCESS_TOKEN|OPTION:アクセストークンを予め保存しておくことで通信を1回減らす|
36-
37-* 動作例(PukiWikiの検索) [#3a5jz4g]
38-#twitter(search=PukiWiki);
39-
40-* 技術情報 [#fkg70d2]
41-本Pluginは[[application-only-auth>https://dev.twitter.com/docs/auth/application-only-auth]]という認証方式で認証しています。
42-これはアプリケーション発行の際に生成されるAPI KEYとAPI SECRETのみで動作し、実行できることが限られます。
43-
44-認証方法
45-API keyとAPI secretにURLエンコードを施し、:(コロン)で接続した後、
46-Base64でエンコードしたデータを通信ヘッダーに認証項目を付加する
47-POST通信で''grant_type=client_credentials''をhttps://api.twitter.com/oauth2/tokenへPOSTする
48- POST /oauth2/token HTTP/1.0
49- Host: api.twitter.com
50- User-Agent: My Twitter App v1.0.23
51- Authorization: Basic (Base64でエンコードしたデータ)
52- Content-Type: application/x-www-form-urlencoded;charset=UTF-8
53-
54- grant_type=client_credentials
55-access_tokenが返ってくるのでアクセストークンを用いてAPIを利用する。
56-
57-* 注意事項 [#3nnl7v7]
58-#sh(php){{
59-if (!defined('PLUGIN_TWITTER_ACCESS_TOKEN')) {
60- // get access token
61- $authorization = "Basic ".base64_encode(rawurlencode(PLUGIN_TWITTER_API_KEY) . ':' . rawurlencode(PLUGIN_TWITTER_API_SECRET));
62- $json = plugin_twitter_post_token($authorization, "POST", PLUGIN_TWITTER_OAUTH_TOKEN, "grant_type=client_credentials");
63- $access_token = $json->access_token;
64-} else {
65- $access_token = PLUGIN_TWITTER_ACCESS_TOKEN;
66-}
67-}}
68-この部分の$access_tokenがPLUGIN_TWITTER_ACCESS_TOKENに当たりますが
69-外部からアクセス出来る場所に保存しないでください。悪用される可能性があります。
70-ローカル環境で$access_tokenを出力し、設定することを推奨します。
1+REDIRECT:[[Plugin/追加プラグイン/twitter]]
スポンサー