概要 
Twitterのツイートを拾い、PukiWikiページに埋め込むプラグインです。
内部で処理を行っているため、実装によってはNGワードによる対象のブロックも可能です。
http://d.hatena.ne.jp/stealthinu/20100607/p2で公開されているプラグインをOAuthに対応し、JavaScript自動更新を外したものです。
LICENSE:GPL version2.0
PHP5.5環境でPukiWikiが動作しないため、PukiWiki環境下での動作検証は行っておりません。
動作はget_passage関数に依存しています。実装されていない場合は書き換えてください。
ダウンロード 
plugin/twitter.inc.php
ファイルはzipファイルです。
ブラウザによっては拡張子が付与されない場合もあります。
その場合「.zip」をファイル名の末尾に追加してください。
特徴 
- OAuth認証によるツイートの取得
- 取得したツイートのHTMLへの埋め込み
- 取得したデータのキャッシュ(デフォルトで10分)
- twitter.inc.php一部互換
- JavaScriptによる自動更新はありません
自動更新を外した理由として3点あり
- 本Pluginはキャッシュを実装したため、更新時間に制限が発生した
- TwitterAPIに認証が必須になったため、回数制限が発生した
- TwitterAPIに認証が必須になったため、Pluginを通して取得しなければならなくなった
上記の3点です。
設定項目 
ラベル | 説明 |
---|---|
PLUGIN_TWITTER_API_KEY | アプリケーション作成時に表示されるAPI key |
PLUGIN_TWITTER_API_SECRET | アプリケーション作成時に表示されるAPI secret |
PLUGIN_TWITTER_ACCESS_TOKEN | OPTION:アクセストークンを予め保存しておくことで通信を1回減らす |
動作例(PukiWiki -httpの検索) 
チェリテ攻略Wiki RT @m0370: このPukiwikiスキン、きれいでいいな。 https://t.co/AdxtMatnfY
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 #PukiWiki なら、ページの一部を折りたたんで表示することも簡単です。 折りたたみ表示部分は、ページの段落でも、段落のタイトルでも、画像であっても構いません。 まだ #料ブログ や… https://t.co/QVOio4gAFd
ぽり またpukiwikiに戻ってきてしまったので移植がめんどくさい
👩🏻✈️市川ゆり子🙎🏻♀️秋葉原在住💉💉💉🙍🏻♀️メンブレ中…… 🤔PukiWiki借りてきてドメイン転送すればいいんじゃね?あるいはPHP動くサーバ借りてきてMediaWiki突っ込むとか………(百合子さんちはそう👩🏻✈️✨) 👩🏻💻ワーヨプレス動くサーバをConoHa WINGとかで… https://t.co/mVn1bOoadH
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 #PukiWiki なら、ブログカード型のリンクや件名と本文を含んだメールのリンク、電話発信とSMS送信が可能な電話番号のリンクを簡単に表示できます。 まだ #料ブログ や #WordPress https://t.co/9v3dcHRF7t
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう 仲間になりませんか? 有料で!(ぇ #PukiWiki を中心に愛と憂国を酒部! ※PukiWikiに限定せず、ITやシステム開発全般についてご相談や質問に答えます https://t.co/M1jp61AI66
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 SNSでPDFファイルを拡散?んなアフォなw 運営サイトにPDFをアップするにしても、閲覧して貰えますか? #PukiWiki なら、デバイスを問わず誰もがPDFを閲覧し、ダウンロードする仕組みがあ… https://t.co/OgIxlVNAPx
dex openssh v8.8でssh接続できなくなったので対処書いた https://t.co/eBcMFgktcL
sara pukiwikiにanalyticsコード埋め込んだのに何故か認識しない
ホタペン notepmつかっている方、pukiwikiとくらべてどうでしょうか(有償・無償の違いは別として)
葛城 玲 @kanade_snowlit WordPress入れる、PukiWikiを入れる、レン鯖事業者が用意した適当なCMSを入れる、昔ながらの手書き?
tetuinngotto361 RT @hokudai_jk: 筑波大の金澤さんが北大でセミナーをしてくれます!是非、参加してください。学部生も大学院生もウェルカムです。詳細はHPへ。 === 日時: 2023年2月21日(火) 14:45 - 16 : 15 場所: 北海道大学大学院情報科学研究院1階 A1…
北海道大学情報解析学研究室 筑波大の金澤さんが北大でセミナーをしてくれます!是非、参加してください。学部生も大学院生もウェルカムです。詳細はHPへ。 === 日時: 2023年2月21日(火) 14:45 - 16 : 15 場所: 北海道大学大学院情報科学… https://t.co/4g9v0jGYH6
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう 運営しているサイトの表示速度が遅く、PageSpeed Insightsの診断が意味不明で困ってはいないだろうか? 2021年6月にGoogleがページエクスペリエンスアップデートを実施しており、ページ表示速度の改善はSEOにとっ… https://t.co/8z1zBm7hlq
ハゲチラカット・パイソニスチャイ 10人前後の勉強会プラットフォーム、結局の所無料だとサービスの限界を感じる(アカウントやコンテンツ容量の制限) 結局のところ大学研究室よろしくpukiwikiを適当なラズパイに仕込む以外のアイデアが思いつかない
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 #PukiWiki なら、画像表示も #Lightboxライトボックス)に対応しているので、画像単体や画像グループの表示も簡単です。 refプラグインはPDFビューアにも対応しているので、PDF表… https://t.co/Por0duqmNH
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 #PukiWiki なら、サイトを #言語化 することも簡単です。Googleの機械翻訳ですが。 在日や海外の同好の士と、言語の壁を乗り越えたコミュニケーションやコラボレーションも、決して夢ではあ… https://t.co/v84k9zLGe6
アケマス設置店舗Wikibot 【設置店紹介】アミューズメントジャムジャムつくば店(茨城県つくば市) https://t.co/nC6agyY6Yf 2018年3月13日、店舗ツイッターより設置情報あり!
チェリテ攻略Wiki pukiwiki編集しやすくするeasyedit導入上手くいかないので、プラグインのコメントに質問残しておいた。 なんとか編集しやすくするから…気長に待っててください。
ハスラ pukiwikiにプラグイン導入して公式のツイッターリンクを貼ろうかと思ったら、これwikiの管理者権限いるっぽいな😅 面倒くさいから放置するか・・・
Shogo Ohe 動きました ゴールは pukiwiki を動かすことではないので次へ https://t.co/R4aAOpGM9H
Shogo Ohe App Service に pukiwiki をデプロイするというよく分からんことをやっとる 昔はレンタルサーバーを借りてやってたなー
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 SNSでPDFファイルを拡散?んなアフォなw 運営サイトにPDFをアップするにしても、閲覧して貰えますか? #PukiWiki なら、デバイスを問わず誰もがPDFを閲覧し、ダウンロードする仕組みがあ… https://t.co/bWMzoqbzj0
高須正和@ニコ技深センコミュニティ Nico-Tech Shenzhen RT @youtoy: この土日に開催の #NT賀 、 日曜だけ見る側で参加する予定 (NT加賀は、今回が初参加) ●NT加賀2023 - PukiWiki https://t.co/6V4lgwhKNE
you この土日に開催の #NT賀 、 日曜だけ見る側で参加する予定 (NT加賀は、今回が初参加) ●NT加賀2023 - PukiWiki https://t.co/6V4lgwhKNE
Javaさん(サム・ジーヴァ帝)#帝国史執筆中✍️ 通訳案内士持っとるんかーい🌝 https://t.co/MGO0mVBctI
オヤジ戦隊ダジャレンジャー@オンラインサロンやって〼色々開発ちう #PukiWiki及委員会 #PukiWiki なら、設定をしておくだけで #codoc と #OFUSE からいつでも応援メッセージと投げ銭を受け取ることが可能です。 まだ #料ブログ や #WordPress なんです… https://t.co/EIsfI55RTe
のく ランスシリーズの勇者システムが悪意で満ちてるのがこう https://t.co/CMrGP0Vhio あのどうしようもなく完全に終わってる世界を最後10第二部で大団円に持っていったのも凄い
Hiroo Ono 🌻 RT @drachen6jp: https://t.co/y00MN6xVHk あった 今の世の中でもシリアルコンソール使う人(しかも日本語!)がおって助かります
技術情報 
本Pluginはapplication-only-authという認証方式で認証しています。
これはアプリケーション発行の際に生成されるAPI KEYとAPI SECRETのみで動作し、実行できることが限られます。
認証方法
API keyとAPI secretにURLエンコードを施し、:(コロン)で接続した後、
Base64でエンコードしたデータを通信ヘッダーに認証項目を付加する
POST /oauth2/token HTTP/1.0 Host: api.twitter.com User-Agent: My Twitter App v1.0.23 Authorization: Basic (Base64でエンコードしたデータ) Content-Type: application/x-www-form-urlencoded;charset=UTF-8 grant_type=client_credentials
access_tokenが返ってくるのでアクセストークンを用いてAPIを利用する。
注意事項 
if (!defined('PLUGIN_TWITTER_ACCESS_TOKEN')) { // get access token $authorization = "Basic ".base64_encode(rawurlencode(PLUGIN_TWITTER_API_KEY) . ':' . rawurlencode(PLUGIN_TWITTER_API_SECRET)); $json = plugin_twitter_post_token($authorization, "POST", PLUGIN_TWITTER_OAUTH_TOKEN, "grant_type=client_credentials"); $access_token = $json->access_token; } else { $access_token = PLUGIN_TWITTER_ACCESS_TOKEN; }
この部分の$access_tokenがPLUGIN_TWITTER_ACCESS_TOKENに当たりますが
外部からアクセス出来る場所に保存しないでください。悪用される可能性があります。
ローカル環境で$access_tokenを出力し、設定することを推奨します。