楽天モバイルが「arrows We2」を一括1円で販売

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

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


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

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

\\どうかフォローをお願いします…//


< この記事をシェア >

usedoor Twitterでシェア
usedoor facebookでシェア
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 Twitterでシェア
usedoor facebookでシェア
usedoor はてなブックマークに保存
usedoor Pocketに保存
usedoor LINEでシェア
usedoor feedly



\\どうかフォローをお願いします…//



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

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

ワイモバイルを通常よりおトクに契約する方法 – SIMのみで26,000円相当還元!!

キャンペーン

ワイモバイルオンラインストアでワイモバイルのSIMカードを契約すると最大26,000円相当の還元がもらえる!

【最大5,000円相当が無料でもらえる】Yahooショッピング、PayPayモールで買い物して「ウェルカムギフト」をもらう方法 – 対象となる条件などまとめ

ショッピング

はじめてまたは久々にYahooショッピング、PayPayモールで買い物する人は5,000円相当の商品が詰まったウェルカムギフトがもらえる!

【GUで全額還元!!】ペイペイジャンボとは?開催中のキャンペーン、還元条件、対象ショップまとめ – 当たらない?当選の確認手順や本人確認などの参加条件など

キャンペーン

最大1,000%還元や全額還元などが当たる「ペイペイジャンボ」開催!対象となる条件や特典をまとめました。楽しいしおトク。だけどなかなか当たらない…

楽天モバイル「紹介キャンペーン」で楽天ポイントをゲットする方法 – 招待リンクあり&適用条件や注意点などまとめ。特典付与スケジュール改善!

キャンペーン

楽天モバイルが友だち紹介キャンペーンを実施中。2024年2月より招待された人の特典が爆増!今ならのりかえ契約で13,000ポイントがもらえる。今月の条件や注意点などまとめ

Kindle Unlimitedにおトクに登録できるキャンペーンまとめ – Amazonの本・雑誌読み放題をおトクに契約する方法

キャンペーン

Amazonの読み放題サービス「Kindle Unlimited」のキャンペーンをまとめています。12月1日までブラックフライデー連動キャンペーンで3ヵ月間99円!


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

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

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

usedoor Twitter
usedoor facebook
usedoor feedly
usedoor RSS


新着ニュース&記事

【メルカリバンク】メルペイがメルカリの売上金を即時・無料で出金できる新サービスを提供開始

ニュース

メルペイとみんなの銀行を連携すると、メルカリの売上金を即時かつ無料で出金できるように!2025年12月18日~サービス開始。

auが「Google Pixel 9a 128GB」を値下げ、実質負担額447円に!

ニュース

2025年12月8日から、auが「Google Pixel 9a 128GB」のスマホトクするプログロムで購入時の実質負担額を改定。MNPなら実質負担額447円で利用可能に。

家電量販店でAirPods 4が16,800円の特価で販売

ニュース

AirPods 4ノイズキャンセリング非搭載モデルは16,800円~、搭載モデルは24,800円の特価で販売。

【ちいかわ】セブン‐イレブン&セブンネット限定グッズをゲットする方法、12月26日14時~販売開始

ショッピング

ちいかわのセブンイレブン&セブンネットショッピング限定グッズ「ステンレスタンブラー(全2種)」「オリジナルエコバッグ(全1種)」が2025年12月26日14時より販売。

Amazonの支払い方法に「au PAY(ネット支払い)」を追加する方法

webサービス

Amazon.co.jpの支払い方法に「au PAY(ネット支払い)」を追加する手順。本人確認が完了しているau PAYアカウントでないと利用できないので注意。


新着記事をもっと見る

usedoorをフォロー


注目・おすすめ記事

【完全版】Amazonで『クレジットカードなし』で買い物する方法 – クレカ不要の支払い手段を徹底まとめ!他社のポイント利用も

クレジットカード不要でAmazonでの買い物の支払いができる手段をがっつりまとめました!クレカがない人や未成年の人もどうぞ


【Android】モバイルPASMOの発行方法&注意点 – ついにおサイフケータイに対応。定期券も買える。Suicaと共存できる?

やっとモバイルPASMOが使えるようになった!定期券も発行できる。モバイルSuicaとの同時発行もできるけど注意が必要


【iPhone】かかってきた電話に自動的に出る方法 – 通話ボタンを押さなくても自動で通話開始!運転中の着信などにマジ便利

Bluetoothヘッドセットを装着してクルマの運転中にiPhoneで通話をするという人にマジでオススメな自動的に電話を取る設定


【通信障害対策に】サブ回線としての契約がオススメのキャリア・格安SIMまとめ – 月額料金は抑えつつ予備としてどうぞ。eSIM、デュアルSIMなど

時々発生するキャリアの通信障害… 障害発生中は電話・ネットが繋がらない。。を避けるために持っておくのがオススメのサブ回線をまとめてみた


【一括1円が復活!!】楽天モバイル『Rakuten WiFi Pocket Platinum』をお得に利用する方法 – プラチナバンドに対応したモバイルルーター!

楽天モバイルのプラチナバンドに対応した新型Wi-Fiルーター「Rakuten WiFi Platinum」がお得に利用できるキャンペーン。楽天モバイル回線を契約すれば一括1円で買える!



注目の記事をぜんぶ見る


最新記事&ニュース

【メルカリバンク】メルペイがメルカリの売上金を即時・無料で出金できる新サービスを提供開始

メルペイとみんなの銀行を連携すると、メルカリの売上金を即時かつ無料で出金できるように!2025年12月18日~サービス開始。


auが「Google Pixel 9a 128GB」を値下げ、実質負担額447円に!

2025年12月8日から、auが「Google Pixel 9a 128GB」のスマホトクするプログロムで購入時の実質負担額を改定。MNPなら実質負担額447円で利用可能に。


家電量販店でAirPods 4が16,800円の特価で販売

AirPods 4ノイズキャンセリング非搭載モデルは16,800円~、搭載モデルは24,800円の特価で販売。


【ちいかわ】セブン‐イレブン&セブンネット限定グッズをゲットする方法、12月26日14時~販売開始

ちいかわのセブンイレブン&セブンネットショッピング限定グッズ「ステンレスタンブラー(全2種)」「オリジナルエコバッグ(全1種)」が2025年12月26日14時より販売。


Amazonの支払い方法に「au PAY(ネット支払い)」を追加する方法

Amazon.co.jpの支払い方法に「au PAY(ネット支払い)」を追加する手順。本人確認が完了しているau PAYアカウントでないと利用できないので注意。



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


usedoorをフォロー


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

「Audible」のキャンペーンまとめ – Amazonの朗読サービスを通常よりもおトクに利用する方法

10月14日までAudibleが過去最長クラスの2ヵ月無料で利用できるプライムデー連動キャンペーン開催中!Amazonの朗読サービス「Audible」に登録するならキャンペーンの利用がオススメ


ワイモバイルで折りたたみスマホ「Libero Flip」をおトクに購入する方法 – 一括9,800円&PayPayポイント還元で購入できる

ワイモバイルの折りたたみスマホ「Libero Flip(A304ZT)」が値下げ!機種変更でも一括9,800円と激安!!さらに必ずPayPayポイントがもらえる


【条件変更】auオンラインショップ「スペシャルセール」でおトクにスマホを購入する方法 – 対象機種や適用条件、割引金額などまとめ

au PAY残高キャッシュバックや割引特典がある「au Online Shop スペシャルセール」を開催中。機種変更&指定されたプランで対象機種を購入すると適用される


【12円スマホ】ソフトバンク『新トクするサポート(バリュー)』の対象機種、適用条件などまとめ – iPhone 15が対象に⇒128GBモデルは月額1円で利用できる!

ソフトバンクの対象機種が1年間12円~で利用できる『新トクするサポート(バリュー)』の条件や対象機種まとめ。返却で激安でiPhone・Androidが使える!


Amazonギフトカードを5,000円以上購入⇒500ポイントプレゼントキャンペーン開催。2025年プライムデー連動で対象者限定

プライムデー2025連動企画。対象者限定でAmazonギフトカード最大10%還元キャンペーン開催。5,000円以上の購入で500ポイントがもらえる!2025年7月14日まで



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