これまでwordoressのプラグインを使ってX(旧:twitter) へ連携投稿してきたが、その機能がいつの間にかできなくなっている。(イーロンマスク・・)まあ趣味でやっているブログなので、必須というわけではないができないとそれはそれで寂しい。そこで個人的な勉強もかねて、外部からX(旧twitter) にpost(Twieet)する為の環境整備し投稿できるようにした。これはその時のメモです。なお、プログラムは「Twitter-API-v2-sample-code」の「create_tweet.py」のコアロジックをほぼそのまま流用。
1.自分のX(旧:twitter) 契約と制約の確認
先人の皆さんの記録からX社の開発者向けHP「Twitter Developer Portal」で確認自分は、Freeプランで契約していたが、FreeプランでもPost(Tweet)できることを確認。このあたりX(旧:twitter) については、ニュースサイトで投稿について有料・無料等の情報が有象無象に入り乱れている印象、動きも早いため現時点でということです。(2023.11現在)
https://developer.twitter.com/en/portal/products/free より
Twitter APIによるPost(Tweet)は月1500回まで無料、1日(24時間)あたり50リクエストまで
2.Twitter API利用のための設定
ここはハマった。「Twitter Developer Portal」で自分のプロジェクト画面下にある「User authentication settings」画面で とくに「App permissionsをRead and write」変更する必要がある。他必須パラメータは、先人の皆様を参考に適宜設定。
3.サンプルコード取得
X(旧:twitter) のAPI利用のためのサンプルコードは充実している。
GitHub – twitterdev/Twitter-API-v2-sample-code: Sample code for the Twitter API v2 endpoints
逆に充実しすぎていて、素人にはどれが良いかわからないくらいだが、プロジェクト名やフォルダ名やソースの内容からなんとなく「Manage-Tweets」の「create_tweet.xx」シリーズがよさそう。過去にも使ったこともありWeb上にヒントも多そうで無難なpython用「create_tweet.py」を使うこととした。
ちなみに、「create_tweet.js」はきっとNode.jsを使い、更にはGASと相性が良くgoogleスプレッドシートから自動投稿とかする時に使えるし夢が広がるだろうな思いながらもNode.jsを使ったことがないので今回は却下、いずれやってみる。「create_tweet.rb」のruby環境の構築やrubyをあまり使ったことがないことから却下(確か日本人のまつもとさんが礎を築いたスクリプト言語、、ここまで認められているスクリプト言語、日本人としていずれ使いこなせるようにしたい。。)
4.Python環境の構築
今回開発はWindows(vsvode)、実行はUbintsu(ラズパイ)としたかったためサンプルコードをみて必要なライブラリを双方のOSにインストールした。、Ubintsuはpipも久しく使っていないためpipのアップデートから実行した。
1 2 |
pip install -U pip pip install requests requests_oauthlib |
5.サンプルコード改造と実行
今回、理想を言えばWordPressの「公開」ボタン押下に反応し連携投稿できればいいが、そこまでの余力やスキルがないため、既公開済みブログを対象に、「1、ブログのURL」と、「2、ブログの紹介一言コメント」を投稿するように「create_tweet.py」を改造した。consumer_key と consumer_secretは、「Twitter Developer Portal」で取得するkeyとsecretをOSへ設定するサンプルコードの手法ではなく、直接コードに埋め込むことにした。
それからサンプルコード通りの動きでコンソールを使うことになるが、、Xへ投稿する際にXの認証サーバからPINコードの入力を求められる。その際は、直前に出力されたauthorization_urlにアクセスし認証コードを取得することになる。(OAuthの動き)
最後にWindowsとUbinstu双方で下記サンプルで実行したが、どちらもX(旧Twitter)へ投稿できた。
6.参考にさせていただいたサイト
POST /2/tweets | Docs | Twitter Developer Platform
Use Cases, Tutorials, & Documentation | Twitter Developer Platform
Twitter、新たなTwitter APIサービスの提供開始。 試用のための無料プランや有料プランなどを用意 – GAME Watch (impress.co.jp)
2023年版 Twitter API v2を無料で叩く (OAuth 2.0 with PKCE) (zenn.dev)
Python で Twitter API にアクセス #Python – Qiita
仕方ないからTwitter APIの基本的な使い方を教えてあげる。 (zenn.dev)
PythonでTwitterしてみた #Python – Qiita
[Python]特定バージョンのライブラリがインストールできない – Kajindows XP
Twitter API有料(Basic)、無料プラン利用開始手順※2023年9月最新│Programming ZERO (programming-zero.net)
Twitter APIのKeyやSecretの取得・確認手順※2023年10月最新│Programming ZERO (programming-zero.net)
コメント