【激熱!!】「みんなの銀行」をアプリで口座開設して現金1,000円をゲットする方法(口座開設はアプリで10分程度で可能&最短翌日入金!)

誰でも作れる「つぶやきbot」や「ダイレクトメッセージ送信機」  PHPでTwitterを操作する方法【TwitterAPI 1.1 REST&TwitterOAuth】

PHPからつぶやいたりダイレクトメールを送ったり、フォロワーを確認したりetc...


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

この記事内には広告リンクが含まれています。


usedoor facebookでシェア
usedoor Twitterでシェア
usedoor はてなブックマークに保存
usedoor Pocketに保存
usedoor LINEでシェア
usedoor feedly


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)のアタマにエラーを吐き出す設定にしておきました。

ini_set( ‘display_errors’, 1 );

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

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

require “twitteroauth-master/autoload.php”;
use Abraham\TwitterOAuth\TwitterOAuth;

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

Twitter認証情報を書き込む

//値を設定
$consumerKey = “○○○”; //Consumer Key (API Key) の値
$consumerSecret = “■■■”; //Consumer Secret (API Secret)の値
$accessToken = “△△△”; //Access Tokenの値
$accessTokenSecret = “×××”; //Access Token Secretの値

//上記の情報で接続
$connec = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

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

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

$connec->post(“statuses/update”, array(“status” => “これはPHPから実行してツイートしまっした。”));

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

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

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

<?php
require “twitteroauth-master/autoload.php”;
use Abraham\TwitterOAuth\TwitterOAuth;

$consumerKey = “○○○”; //Consumer Key (API Key) の値
$consumerSecret = “■■■”; //Consumer Secret (API Secret)の値
$accessToken = “△△△”; //Access Tokenの値
$accessTokenSecret = “×××”; //Access Token Secretの値

$connec = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret);

$connec->post(“statuses/update”, array(“status” => “これは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 facebookでシェア
usedoor Twitterでシェア
usedoor はてなブックマークに保存
usedoor Pocketに保存
usedoor LINEでシェア
usedoor feedly





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

現在開催中の「おトク」なキャンペーン、セール

【楽天モバイル】初めて20GB超過利用して1,000ポイントをゲットする方法 – 毎月開催&必ずもらえる!最強プランにピッタリのキャンペーン

キャンペーン

楽天モバイル契約者限定で過去に一度も20GBを超過したことがなく20GBを超過しそうな人は必見!楽天ポイント1,000ポイントもらえる。最強プランも対象

【誰でもOK!!】『ドコモオンラインショップ限定 機種購入割引』でiPhone・Androidスマホを大幅割引で購入する方法&対象機種まとめ – 機種のみ購入でもOK!

携帯電話

ドコモオンラインショップ限定機種購入割引で対処機種が大幅割引!機種単体(白ロム)購入も対象。割引の条件、対象機種は?

【裏技?】ahamoを新規契約して10,000dポイントをもらう方法 – ドコモSIM単体契約⇒即ahamoへのプラン変更でポイントが付与された

携帯電話

ドコモのSIMを単体契約⇒即ahamoにプラン変更で10,000dポイントがもらえた!直接ahamoで契約するよりもかなりおトクに

最大6ヵ月無料!Yahoo!プレミアムに無料で登録する方法 – さらにYahooショッピングで使える割引クーポンやPayPayポイント特典も

キャンペーン

Yahooプレミアムが対象者限定で最大6ヵ月無料!さらにPayPayポイントやクーポンがもらえることも!対象かどうかはアクセスしてチェックしてみて

【2023年12月】ふるさと納税で返礼品&Amazonギフトカードなどの特典がもらえるキャンペーンまとめ – 最大20%還元&Amazon Pay支払いがおトクなど

国や地方の制度

ふるさと納税サイト毎に開催している返礼品とは別に寄付金額に応じたAmazonギフトカードなどがもらえるキャンペーンをまとめてみた


開催中のキャンペーンをもっと見る

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

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

usedoor facebook
usedoor Twitter
usedoor feedly
usedoor RSS


新着ニュース&記事

【ざくざく貯まる】楽天銀行 第一生命支店の「現金プレゼントプログラム」にエントリーする方法

キャンペーン

キャンペーンのエントリーは楽天銀行 第一生命支店アプリからする必要あり。毎月エントリーする必要がるので忘れないようにしよう!

ノジマオンラインで新型PS5(Slimモデル)を購入するとSIE純正DualSense充電スタンドが1円で買えるキャンペーン開催。ほぼ付いてくる特典!

ニュース

ノジマオンラインで新型PS5を購入するとSIE純正DualSense充電スタンド(CFI-ZDS1J)が同時に1円で買える!対象モデルは4種類

【2023年12月】ふるさと納税で返礼品&Amazonギフトカードなどの特典がもらえるキャンペーンまとめ – 最大20%還元&Amazon Pay支払いがおトクなど

国や地方の制度

ふるさと納税サイト毎に開催している返礼品とは別に寄付金額に応じたAmazonギフトカードなどがもらえるキャンペーンをまとめてみた

【土日開催!!】Amazonで週末にポイント2倍『土曜日曜ダブルポイント』でおトクに買い物する方法 – 対象商品、参加条件などまとめ

ショッピング

Amazonで週末に対象商品購入でダブルポイントとなるキャンペーンを開催。今回は1回で7,000円以上の商品購入が対象。Anker製品などもあり

App StoreなどAppleのサービスに使えるPayPayクーポンが配布、最大10%還元

ニュース

12月1日~1月8日にApp StoreなどAppleのサービスで使える最大10%還元のPayPayクーポン。Appleアカウント残高にチャージでもクーポンが適用されます。


新着記事をもっと見る

usedoorをフォロー


注目・おすすめ記事

最大6ヵ月無料!Yahoo!プレミアムに無料で登録する方法 – さらにYahooショッピングで使える割引クーポンやPayPayポイント特典も

Yahooプレミアムが対象者限定で最大6ヵ月無料!さらにPayPayポイントやクーポンがもらえることも!対象かどうかはアクセスしてチェックしてみて


【2023年11月】ahamo、LINEMO、povoどれにする?開催中キャンペーンの特典と条件を比較してみた – キャッシュバックやポイント還元などでおトクに契約する方法

ドコモのahamo、ソフトバンクのLINEMO、auのpovo、。大容量低価格プランを今契約するならどこが一番おトクにキャンペーンで契約できる?を比較してみた


【楽天ポイント】期間限定ポイントのオススメの使い方 – 楽天系のサービス以外でも使える!有効期限確認、少額でも使い切る方法

いつの間にか貯まる『期間限定の楽天ポイント』楽天市場で無理やり使うのではなく街のお店などで効率的に使うのがいいかも!


「AirPods Pro(第1世代/第2世代)」をおトクに購入する方法 – 予約開始日や発売日、価格、スペックの違い・比較、販売店などまとめ

USB-C充電機能を搭載した新モデル「AirPods Pro(第2世代)」が2023年9月22日に発売!価格は39,800円(税込)。第1世代と第2世代の違い・比較も



注目の記事をぜんぶ見る


最新記事&ニュース

【ざくざく貯まる】楽天銀行 第一生命支店の「現金プレゼントプログラム」にエントリーする方法

キャンペーンのエントリーは楽天銀行 第一生命支店アプリからする必要あり。毎月エントリーする必要がるので忘れないようにしよう!


ノジマオンラインで新型PS5(Slimモデル)を購入するとSIE純正DualSense充電スタンドが1円で買えるキャンペーン開催。ほぼ付いてくる特典!

ノジマオンラインで新型PS5を購入するとSIE純正DualSense充電スタンド(CFI-ZDS1J)が同時に1円で買える!対象モデルは4種類


【2023年12月】ふるさと納税で返礼品&Amazonギフトカードなどの特典がもらえるキャンペーンまとめ – 最大20%還元&Amazon Pay支払いがおトクなど

ふるさと納税サイト毎に開催している返礼品とは別に寄付金額に応じたAmazonギフトカードなどがもらえるキャンペーンをまとめてみた


【土日開催!!】Amazonで週末にポイント2倍『土曜日曜ダブルポイント』でおトクに買い物する方法 – 対象商品、参加条件などまとめ

Amazonで週末に対象商品購入でダブルポイントとなるキャンペーンを開催。今回は1回で7,000円以上の商品購入が対象。Anker製品などもあり


App StoreなどAppleのサービスに使えるPayPayクーポンが配布、最大10%還元

12月1日~1月8日にApp StoreなどAppleのサービスで使える最大10%還元のPayPayクーポン。Appleアカウント残高にチャージでもクーポンが適用されます。



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


usedoorをフォロー


現在開催中の"おトク"なセール、キャンペーン、お買い得アイテムまとめ

【11月版】IIJmioで安くiPhoneやAndroidスマホを買う方法・スマホ一覧 – ゴーゴーキャンペーンスマホ大特価セールで一括110円~

スマホ安売りでお馴染みのIIJmio恒例の『スマホ大特価セール』がゴーゴーキャンペーンとして開催!今回も特にAndroidスマホが大幅割引で激安に。2023年11月30日まで


【ドコモ】『オンラインショップおトク割』でスマホをおトクに購入する方法 – 端末のみ購入もOK!対象機種、割引金額、適用条件まとめ

ドコモオンラインショップが新たな割引「オンラインショップおトク割」をスタート!5G WELCOME割併用で超大幅割引となる機種も!


【楽天モバイル】初めて20GB超過利用して1,000ポイントをゲットする方法 – 毎月開催&必ずもらえる!最強プランにピッタリのキャンペーン

楽天モバイル契約者限定で過去に一度も20GBを超過したことがなく20GBを超過しそうな人は必見!楽天ポイント1,000ポイントもらえる。最強プランも対象


【オススメは?】eSIMに対応しているキャリア・格安SIMまとめ&比較 – 月額料金やデータ容量別に比べてみた。eSIMをおトクに利用する方法

eSIM発行に対応しているキャリア、格安SIMを徹底的にまとめてみた。料金とデータ量などで自分にあうオススメのeSIMを見つけよう


最大6ヵ月無料!Yahoo!プレミアムに無料で登録する方法 – さらにYahooショッピングで使える割引クーポンやPayPayポイント特典も

Yahooプレミアムが対象者限定で最大6ヵ月無料!さらにPayPayポイントやクーポンがもらえることも!対象かどうかはアクセスしてチェックしてみて



開催中のキャンペーンをぜんぶ見る