【当サイト限定 ドコモクーポン配布中!】iPhone Xが5,400円割引になる『限定割引クーポン』をusedoor読者にプレゼント!

新着を見る

最終更新 [2015年7月22日]





TwitterAPI 1.1 REST、TwitterOAuthの使い方、設定方法、オプション、PHPで実際に使う時のコードの書き方などのまとめです。

PHPからTwitter API1.1を操作する作業(TwitterOAuth絡み)があったのでメモりがてら使い方をまとめました。
TwitterOAuthをちょっと変更したりとPHPで使うために微妙にハマりました。。

■今回使った環境とやったこと

【要件】
PHPを実行して自動つぶやきとダイレクトメッセージを送信する
(Twitterアカウントは自分のもの)

・PHP 5.3.3
・TwitterAPI 1.1
・TwitterOAuthは20156/15付けで更新されているバージョンのもの


APIの項目一覧などもできる限り作っていまっす。
PHPなどからTwitterを操作するアプリ作成(つぶやきbotやダイレクトメッセージ送信機とかもいける)をされる人の役にちょっとでも立てれば嬉しいでっす。


TwitterAPI 1.1 REST&TwitterOAuthの使い方(PHPコードあり)

アプリを使うTwitterアカウントでログイン

https://twitter.com/

何にしてもTwitterにログインしていないと始まりませんので↑からTwitterにログインします。
新規登録してそのままログインでもOKです。

先に注意!電話番号認証済のTwitterアカウントじゃないとアプリが作れない

Error
You must add your mobile phone to your Twitter profile before creating an application. Please read https://support.twitter.com/articles/110250-adding-your-mobile-number-to-your-account-via-web for more information.

が、Twitter Application ManagerのTwitter Appsを作成する場合、電話番号認証が終わったアカウントが必須となります。
昔はこんなのなかった気がしたのですが、電話番号認証がいつの間にか必須になったんだなぁ。。

電話番号認証が済んでいない場合、アプリケーションを作ろうとすると電話番号認証してないユーザーだよというエラーが表示されます。
アプリの作成は↓に書いていきますが、先に電話番号認証済Twitterアカウントが必須のことのみ書いておきまっす。

Twitter Application Managerでアプリ作成、キー取得

https://apps.twitter.com/

Twitterにログインした状態で↑のTwitter Application Managerにアクセスします。
「Create New App」をクリックします。

作成するアプリの概要を決めます。

Name:アプリケーションの名前(表示名)
Description:アプリケーションの説明(英数字10文字以上)
Website:アプリを使うウェブサイト
Callback URL:アプリを認証した後にジャンプするURL


ちゃんとユーザーにアプリとして提供したりする場合は、Callback URLなどを適切な設定をしておかないといけませんが、今回のように自分のアカウントで自分だけが使う場合は、基本的にアバウトでOKです。

最後に定番の読めない規約に同意するため、「Yes, I agree」にチェックを入れて「Create your Twitter application」をクリックします。

↑「usedoor test」というアプリケーションを作ってみたところ。

Access tokenとAccess token secretを作成

アプリページの上部にある「Keys and Access Tokens」をクリックします。
表示されているものは、一旦置いといて、下部にあるYour Access Tokenの下のボタン「Create my access token」をクリックします。

この画面になればOKです。

・Consumer Key (API Key)
・Consumer Secret (API Secret)
・Access Token
・Access Token Secret


この画面上に書いてある↑を後から使うことになるのでメモっておきます。

ダイレクトメール関連を使うならパーミッションを変更

ちなみに自動ツイートなどはこれでOKですが、ダイレクトメッセージ関連を使う場合は、アプリのページ上部の「Permissions」タブからアプリのアクセス権限を「Read, Write and Access direct messages」に変更しておく必要があります。


これでTwitter側の設定は完了となります。


PHPを使う!TwitterOAuthをダウンロード

https://github.com/abraham/twitteroauth

GitHubからTwitterOAuthをダウンロードします。
↑にアクセスして、ページ右にある「Download ZIP」をクリックしてダウンロードします。
ダウンロードしてきたtwitteroauth-master.zipファイルを解凍します。
ちなみにこの記事作成時のTwitterOAuthの最終更新日は2015/6/16となっていました。

解凍したフォルダ「twitteroauth-master」をPHPからTwitterAPIを使うサーバーにそのままアップロードします。

TwitterOAuthを実行する自前のphpを作成

実際にTwitterアカウントを動かす処理を書く自前のPHPを作成します。
今回は、tw.phpという名前にして↑でアップロードした「twitteroauth-master」と同じディレクトリ階層にアップロードします。

ここでは、とりあえずtw.phpの中身は空で大丈夫でっす。


これで準備完了となります。

【PHPコード】TwitterAPIを実行するPHPを書く(tw.php)

phpにはエラー表示させておいた方がいいかも

使っているサーバーの環境やphp.iniの設定によってはPHP上にエラー表示をさせてないというパターンがあると思います。
TwitterAPIをポチりにいっていてエラーが出た際にエラー内容が表示されないと何がなんだかわかりません。。

なので自分は、今回作成するPHP(tw.php)のアタマにエラーを吐き出す設定にしておきました。

を書き加えるだけでOKです。

TwitterOAuthの中にあるautoload.phpを読み込む

TwitterOAuthの中にあるautoload.phpを読み込み、使用する宣言を書いておきます。

Twitter認証情報を書き込む

Twitterアプリのページから取得した接続情報4つを持ってTwitterOAuthと接続します。

いざ実行!とりあえずPHPを使ってツイートしてみる。

↑は「statuses/update」という「新規つぶやきを行う」リソース。
オプションの「status」はツイートの内容になります。

これを実行すれば「これはPHPから実行してツイートしまっした。」というツイートが投稿されていると思います。

PHPで自動ツイートする全コード

まとめてしまえば非常にシンプルでっす。


TwitterOAuthで表示されたエラーと対応方法(自分に出たやつ。。)

src/TwitterOAuth.php on line 334

Parse error: syntax error, unexpected ‘[‘ in twitteroauth-master/src/TwitterOAuth.php on line 334

なぜか1ミリも触っていない「TwitterOAuth.php」にてsyntax error。。
これTwitterOAuth.phpの一部を↓のように変更することで直りました。

■変更前
if (in_array($method, [‘GET’, ‘PUT’, ‘DELETE’]) && !empty($postfields)) {
↓↓
■変更後
if (in_array($method, array( ‘GET’, ‘PUT’, ‘DELETE’) ) && !empty($postfields)) {

配列の渡し方の問題ってこと…?

ダイレクトメッセージを送る処理でOAuthRequest()が『Call to private method』

Fatal error: Call to private method Abraham\TwitterOAuth\TwitterOAuth::OAuthRequest() from context

こちらはダイレクトメッセージ送信を行う処理(->OAuthRequest)を使ったときに発生したエラー。。
「TwitterOAuth.php」にあるfunctionのoAuthRequest()がprivateになっているから触ることができずエラーになっているようです。
privateを消してやれば普通に実行できます。

■変更前
private function oAuthRequest($url, $method, array $parameters)
↓↓
■変更後
function oAuthRequest($url, $method, array $parameters)

自分で試した感じでは、privateをハズしても特に他の動きに影響はなさそうでした。
はっきり言ってもっと正当なやり方があるとおもいますが、とりあえずprivate消すだけで動くことは動きます。

TwitterAPI 1.1 REST&TwitterOAuthで使えるAPIまとめ紹介

REST APIを使うにはOAuth認証が必須でっす。
APIのバージョンが1.1になって取得できるデータはjsonからのみとなっています。
1.0からボチボチと変更点がありますので1.0を使っていたユーザーさんは覚えておいた方がよさそうです。

REST APIは大量に用意されています。
本家TwitterDevelopersページにて全て紹介されていますが、まぁ英語。。

そんな中、DX.univさんがものすごく丁寧に『TwitterAPI1.1 REST API 全項目解説』という記事を書かれていて、とーってもわかりやすかったので紹介します。

基本的にTwitterでできることならほとんどできるREST API
PHPなどからガンガン操作できるのでいろいろと試してみてくださいな。

[リンク]
マジでわかりやすい!【保存版】TwitterAPI1.1 REST API 全項目解説
本家TwitterのREST APIsページ


< この記事をシェア >




usedoorの新着記事をチェック!

記事を書くヤル気が出るのでフォローよろしくお願いしますm(._.)m


この誰でも作れる「つぶやきbot」や「ダイレクトメッセージ送信機」 PHPでTwitterを操作する方法【TwitterAPI 1.1 REST&TwitterOAuth】の最終更新日は2015年7月22日です。
記事の内容に変化やご指摘がありましたら問い合わせフォームまたはusedoorのTwitterまたはusedoorのFacebookページよりご連絡ください。

キーワード:bot , PHP , ダイレクトメッセージ , 開発コード ,




同じカテゴリの記事

Twitterでgifアニメを動かす方法【公式対応】

twitter

外部サービスを使わなくてよくなりました

『Twitterデータ』一覧を確認&カスタマイズをオフにする方法 – 自分のプライバシーデータの利用を制限

twitter

年齢や性別が入っててちょっと怖いと話題の『カスタマイズとデータ』 オフにもできるけど…


新着記事

【iPhone・iPad】通知は届いてないのにバイブが鳴る『ゴーストバイブ』が発生した時の対処方法 – パターン毎の原因切り分け方法

iPhone / iPad

呪い…?じゃありません。いろんなパターンがあるけどiOS純正メールアプリの通知設定が怪しい!

【本日開催】dポイント20倍+α!月イチのdショッピングデーでおトクに買い物する方法 – 毎月20日開催

セール

dポイント20倍&ポイント利用分20%還元&1日限りの限定アイテムあり!

「2018年ドコモ ディズニーカレンダー」を無料でGETする方法

ディズニー

まもなく配布開始!2018年度カレンダーの配布期間は11/20~です。欲しい人はドコモショップへGO!

【ドコモオンラインショップ】iPhone Xの入荷スケジュールを確認する方法

携帯電話

iPhone Xいつ入荷するの?予約受付日から入荷の目安が確認できるぞ~

【小ネタ】iOS 11からのAppStoreでアプリアップデート一覧画面でアプリの更新内容を全て表示する方法

iPhone / iPad

これ知らなかった。。アプリのアップデート内容をチェックしている人は知っておいて!な小ネタ


≫ 新着記事をもっと見る



usedoorTOPへ戻る

usedoorをフォロー


  • 注目の使い方

    【11月18日まで】1年版2,980円が再登場。Evernoteプレミアムパックを38%OFFでおトクに購入する方法

    eSHOPに1年版が登場。割引率も十分なのでお手軽価格でプレミアム1年が購入できます


    GooglePlayのギフトカード(コード)をおトクに購入する、おトクに課金する方法 – 現在開催中のセールやキャンペーンまとめ

    セブンイレブンでリネージュ2レボリューションキャンペーン実施中!プレイヤーは店舗へGO!


    【無料視聴も!!】『君の名は。』をネットレンタル!おトクに視聴、テレビなどに映し出す方法まとめ

    在庫絶対アリ!お店行くくらいならネットでサクッと借りるのがオススメ。ポイント使ったりもできますよー


    【LINE】新登場した絵文字『デコ文字』の使い方 – 予測変換(サジェスト)オンを推奨

    突然登場した新絵文字は文字単体で使える『デコ』な文字。これはサジェスト必要ですわ


    注目の記事をぜんぶ見る

  • 最新記事

    【iPhone・iPad】通知は届いてないのにバイブが鳴る『ゴーストバイブ』が発生した時の対処方法 – パターン毎の原因切り分け方法

    呪い…?じゃありません。いろんなパターンがあるけどiOS純正メールアプリの通知設定が怪しい!


    【本日開催】dポイント20倍+α!月イチのdショッピングデーでおトクに買い物する方法 – 毎月20日開催

    dポイント20倍&ポイント利用分20%還元&1日限りの限定アイテムあり!


    「2018年ドコモ ディズニーカレンダー」を無料でGETする方法

    まもなく配布開始!2018年度カレンダーの配布期間は11/20~です。欲しい人はドコモショップへGO!


    【ドコモオンラインショップ】iPhone Xの入荷スケジュールを確認する方法

    iPhone Xいつ入荷するの?予約受付日から入荷の目安が確認できるぞ~


    【小ネタ】iOS 11からのAppStoreでアプリアップデート一覧画面でアプリの更新内容を全て表示する方法

    これ知らなかった。。アプリのアップデート内容をチェックしている人は知っておいて!な小ネタ


    最新記事をもっとチェック

  • 人気記事ランキング

    【11月版】のりかえでiPhone 7を買うならどこが安いか調べてみた! – ドコモ・au・ソフトバンクのiPhone 7料金比較・まとめ

    【11月版】のりかえでiPhone 7を買うならどこが安いか調べてみた! – ドコモ・au・ソフトバンクのiPhone 7料金比較・まとめ

    11月にiPhone7買うなら3キャリアどこが一番安い?MNPで購入した場合の料金を比較...


    ランキングを見る

  • 使い方 カテゴリー

    暮らし
    趣味
    節約・稼ぐ
    WEB
    デジタル
  • キーワード

    Amazon Android apple au Chrome iOS iOS 8 iPad iPhone iPhone 6 iPhone 6 Plus iPhone 6s iPhone 6s Plus iPhone 7 iPhone X iPhoneおトク Kindle MNP PC SIMフリー SoftBank Windows windows 10 オトク キャッシュバック クーポン スタンプ スマートフォン セキュリティ ソフトバンク タブレット ドコモ ドコモオトク ドコモオンラインショップ レビュー ワイモバイル 写真 削除 動画 新規契約 機種変更 注目・ピックアップ 無料 登録 非表示
  • usedoorをフォロー


  • あわせて読みたい記事