【激アツ!!】楽天モバイル回線契約で14,000ポイントがもらえる

誰でも作れる「つぶやき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ページよりご連絡ください。

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

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

携帯電話

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

Amazonで『ギフトカード大還元祭』開催!対象のお店でAmazon Pay利用で1回ごとに最大10,000円分のギフトカードが当たる抽選に参加できる&回数上限なし

キャンペーン

Amazon Payを対象店舗で1回1,000円以上利用すると必ずAmazonギフトカードが当たる抽選に参加できる「ギフトカード大還元祭」開催!期間は6月7日(金)まで

Amazonでd払い、dポイントを利用する方法&キャンペーンまとめ – 期間用途限定ポイントも使える

ショッピング

ドコモユーザーであればAmazonでd払いが使えるようになりました。ただし事前にdポイントの利用設定をしておく必要があるので注意!

【10,000ポイント還元!!】楽天モバイル『Apple Watchスタートキャンペーン』でおトクにApple Watchを購入する方法 – 対象商品&条件まとめ

Apple Watch

楽天モバイルで条件を満たした上でApple Watch購入で最大10,000ポイントが還元されるキャンペーン開催!セルラー版をお試ししたい人に最適

【紹介コードリンクあり】Amazonプライム会員に新規登録して1,000ポイントをゲットする方法 – 適用条件や紹介コードの発行/確認手順など

キャンペーン

Amazonが新たにプライム会員になる人を対象に招待プログラムを開始。紹介コードリンクから登録して条件を満たせば1,000円分のAmazonポイントがもらえちゃう


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

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

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

usedoor Twitter
usedoor facebook
usedoor feedly
usedoor RSS


新着ニュース&記事

Amazon Mastercardの新特典に「セブン‐イレブン 最大7%還元」が追加、2025年7月より提供開始

ニュース

セブンイレブンにてAmazon MastercardをApple Payでタッチ決済(Mastercardコンタクトレス)すると最大7%の還元が受けられる新特典がスタート!

Wear OS対応スマートウォッチがPASMOに対応

ニュース

2025年6月30日より、ようやくWear OSスマートウォッチでPASMOが利用可能に!Google Pixel Watchなどの対応端末で通勤・買い物が腕だけで完結し、利便性がアップ!定期券も使えます。

【ついに】楽天モバイルがPixelの販売をスタート!まずはPixel 9aから。販売されるモデルや価格まとめ

ニュース

楽天モバイルが2025年7月1日にPixel 9aを発売!一括価格はGoogleストアよりも高いけどキャンペーンや返却プログラムにも対応

【LINE】無料スタンプ&隠しスタンプまとめ(2025年7月1日更新)ダウンロード方法&取得条件

LINE

現在配布されているLINEの無料スタンプ&隠しスタンプを徹底まとめ!スタンプを無料ゲットできる条件や取得するまでの手順、有効期限など

【サ終】NBA Rakutenが7月31日でサービス終了。楽天モバイルの特典分も終了へ

ニュース

NBAのゲーム、コンテンツが視聴できる楽天の「NBA Rakuten」がサービス終了に。NBA視聴目的で楽天モバイルを契約している人は要注意!


新着記事をもっと見る

usedoorをフォロー


注目・おすすめ記事

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

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


【割引クーポンあり】Dropbox Plus(有料版)をおトクに購入する方法 – ソースネクストの3年以上複数年版がコスパよし!最安値保証&返金あり

公式は値上げ…Dropbox Plus(有料版)を安く利用したいならソースネクストの3年版が超お買い得!期間限定割引や限定割引クーポンなどまとめ


【神コスパ!!】ソフトバンク『データ通信専用3GBプラン』を契約してみた – PayPayクーポン・LYPプレミアムがフル利用できて月額990円!Androidでも使える

ソフトバンクの超コスパのいい「データ通信専用3GBプラン」を契約してみた。特典満載でメリット多数の激安回線!LYPプレミアムやPayPayクーポンが欲しい人はこれを契約した方が安いかも


楽天カードを1つの名義で国際ブランドの異なる2枚のカードを発行する方法 – 2枚持ちでも年会費無料!

楽天カードの『2枚目のカード』サービスで、異なる国際ブランドやデザインの楽天カードがもう1枚作成できる!


DAZN(ダゾーン)をお得に契約する方法

DAZNをおトクに利用する方法をご紹介!サッカーW杯アジア最終予選のアウェーはDAZN独占配信。2025年6月にアメリカで開催される「FIFAクラブワールドカップ2025」全63試合を無料で独占配信。



注目の記事をぜんぶ見る


最新記事&ニュース

Amazon Mastercardの新特典に「セブン‐イレブン 最大7%還元」が追加、2025年7月より提供開始

セブンイレブンにてAmazon MastercardをApple Payでタッチ決済(Mastercardコンタクトレス)すると最大7%の還元が受けられる新特典がスタート!


Wear OS対応スマートウォッチがPASMOに対応

2025年6月30日より、ようやくWear OSスマートウォッチでPASMOが利用可能に!Google Pixel Watchなどの対応端末で通勤・買い物が腕だけで完結し、利便性がアップ!定期券も使えます。


【ついに】楽天モバイルがPixelの販売をスタート!まずはPixel 9aから。販売されるモデルや価格まとめ

楽天モバイルが2025年7月1日にPixel 9aを発売!一括価格はGoogleストアよりも高いけどキャンペーンや返却プログラムにも対応


【LINE】無料スタンプ&隠しスタンプまとめ(2025年7月1日更新)ダウンロード方法&取得条件

現在配布されているLINEの無料スタンプ&隠しスタンプを徹底まとめ!スタンプを無料ゲットできる条件や取得するまでの手順、有効期限など


【サ終】NBA Rakutenが7月31日でサービス終了。楽天モバイルの特典分も終了へ

NBAのゲーム、コンテンツが視聴できる楽天の「NBA Rakuten」がサービス終了に。NBA視聴目的で楽天モバイルを契約している人は要注意!



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


usedoorをフォロー


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

【最大10,000dポイント】毎日運試し。わくわく毎日くじでdポイントをゲットする方法

毎日引けるdポイントが当たるくじが登場。最高は10,000dポイントらしいけど…


【毎日5%~7%還元!!】Yahoo!ショッピング『PayPay支払いで毎日5%貯まる』キャンペーンでおトクに買い物する方法 – 条件などまとめ

Yahoo!ショッピングで毎日5%還元となるキャンペーンが開催!プレミアム会員などは常時7%還元も。対象となる買い物の条件などまとめ


【ワイモバイル】もう1回線申し込みキャンペーンまとめ – OPPO Reno11 AやiPhone SEが大幅割引、moto g64yが一括1円、PayPayポイント還元など限定特典あり

ワイモバイルの既存契約者向けに増額特典が用意されたキャンペーン開催中。期間限定でOPPO Reno11 Aが超特価の一括4,980円で販売。期間は6月30日まで。


【7月14日まで】Amazonギフトカードを5,000円以上購入⇒500ポイントプレゼントキャンペーン開催。プライムデー2025(対象者限定)

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


【紹介コードあり】増量中!メルカリ/メルペイの紹介キャンペーンでポイントをゲットする方法 – 開始にコード利用で1,000ポイントがもらえる

メルカリ・メルペイを始めるなら最初に招待コードの登録がおトク!今なら必ずメルカリやメルペイの買い物時に利用できるポイントがもらえる。2月16日まで増量中!



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