Tweepyで複数画像のツイートからの画像取得
2枚目以降もstatus.entitiesに入ってるものだと思って長い間探していたんですが、2枚目以降も含んだデータはstatus.extended_entitiesに格納されてたようで、徒労感…
画像を取得した後はurllibを用いて「ID+(0~3の番号).jpg」という形で保存します。
動画とか入ってた場合とかの対処を端折りたかったので雑に握りつぶしてしまってるのでそこは良くないと思う…
tweepyとurllibのimportを忘れずに。
API~前の認証周りは前記事で書いてあります。
twitterOAuthを使ってPHPでTwitter連携
2015年7月に動作確認しています。
の続きです。
Authorize.php(認証用URLの生成)
↓
↓
Tweet.php(ツイートの投稿、プロフィールの取得)
と遷移するページを作ります。説明がわかりづらいしめんどくさい場合は一番下のgithubのコードを見たほうがよく分かるかもしれません。
twitterOAuthのインストール
- twitterOAuthのgithubページから、最新版をダウンロード(2015年7月現在0.5.3)
- 解凍したフォルダを"twitterOAuth"にリネームし、下の様に、認証ページのPHPと同ディレクトリにフォルダを配置する(最終的なディレクトリ構造は↓)
-
example/
├ twitterOAuth/
├ authorize.php
├ callback.php
├ tweet.php
└ initialize.php
初期設定(initialize.php)
- Twitterで登録したアプリケーションのコンシューマキー、コンシューマシークレット、そして認証後にコールバックするURLを設定したphpファイルを作成します。アプリケーションを登録してない場合は下のリンクを参考に登録しましょう。
- 今回コールバックするのは"callback.php"ですが、相対パスだと認証が上手く通らないので、URLの形式で表記します(localhost直下の場合、http://localhost/example/callback.php等)
認証用URLの生成ページ作成(authorize.php)
- アプリケーションのConsumerKeyとConsumerSecretを用意する[URL]
- 公式ドキュメントの通りにコードを入力するとうごきます(丸投げ)
- 一応自分が書いたコードを貼り付けて起きます、上記とほとんど変わりませんが、コンシューマキー等の入力を共通化するために外部(initialize.php)から読み込んでいます。
- 上手く実行できると、Authorizeのリンクを押すとTwitterの認証ページに行くことが出来ます。
アクセストークンの取得、保存(callback.php)
- 連携アプリを認証した後、コールバック先でアクセストークンを取得し、セッション関数に保存します。
- 実行すると、認証後にTweetリンクが表示されたページに飛ぶことが出来ます。
ツイート、アカウントプロフィールの取得(tweet.php)
以上でtwitterOAuthを用いた認証からツイートまでは終了です、これでセッションにトークンが一時的に保存されるので、セッションが破棄されるまでは認証を繰り返さずにAPIの仕様が出来ます。
今回使用したファイルは全てgithubにあげているので、参考になれば使ってください。
Twitterの開発者用アプリ登録
2015年7月に動作確認しています。
PHPのtwitterOAuthを使用する前準備として書いています。
- Twitterにサインインし、https://dev.twitter.com/ にアクセス
- スクロールし、"Manage Your Apps"(赤矢印)をクリック
- "Create New App"をクリック
-
- Name:アプリケーション名
- Description:説明、10~200文字
- Website:ホームページ、yorufukurou等ではviaをクリックしたらここで指定したURLに飛びます
- Callback URL:コールバック用のURL、スクリプト側で指定できるので何でもいいですが、入力しなかった場合Desktop用アプリケーションと判定され、Webアプリケーションだと認証が上手く行かなくなるので、Webアプリケーションで使う場合は入力しておきましょう(私はWebsiteと同じURLにしています)
※アプリの追加に電話番号が必須になったため、アカウントに電話番号が登録されてない場合↓のような表示が出ます、設定のモバイルから追加しましょう
- うまくいくとアプリの設定ページに飛ぶので、"Key and Access Tokens"をクリックします
- このページのConsumerKeyとConsumerSecretが認証に必要なコードになります
- デフォルトの設定だと、ツイートの取得と投稿のみが可能ですが、Permissionsタブより変更可能です。