PHPでTwitterのDMを取得したいのですが、403エラーが返ってきます。
パラメーターなしでも取得出来るとのことでしたので、一応なしで取得してみようとしましたが、
うまくいきません。
パラメータ["count" => "20"]
をつけても変わりませんでした。
どうすれば取得できますでしょうか。
送信は出来ましたので、トークンが間違っているとか、認証がうまくいっていないとかではないと思います。
使っているライブラリはTwitterOAuthです。
下記のPHPは、送信と取得の機能があります。
PHP
1<?php 2 require_once("twitteroauth/autoload.php"); 3 use Abraham\TwitterOAuth\TwitterOAuth; 4 5 if(isset($_POST['mode'])) 6 { 7 $userId = 0000000000000000; //DMを送る相手のユーザーID 8 9 //0,1がアプリケーションのトークン、2,3がユーザーのトークン 10 $keys = array( 11 0 => 'uwQK1p8oiiCjhQRYfltvDVswn', 12 1 => 'zf6fKwVah0Nib3hyPMA0Y6anWYpUxQf7uiwviRiCNi8NdnUXs9', 13 2 => $_POST['t1'], 14 3 => $_POST['t2'] 15 ); 16 $con = new TwitterOAuth($keys[0], $keys[1], $keys[2], $keys[3]); 17 18 if($_POST['mode'] == "send") //DMの送信 19 { 20 $text = urldecode($_POST['t0']); //送信するテキスト 21 22 //パラメータはネットからのコピペなのでよくわからないがとりあえず動いてるからOK 23 $con->post('direct_messages/events/new', [ 24 'event' => [ 25 'type' => 'message_create', 26 'message_create' => [ 27 'target' => [ 28 'recipient_id' => $userId 29 ], 30 'message_data' => [ 31 'text' => $text 32 ] 33 ] 34 ] 35 ], true); 36 //ステータスコード200以外はエラーとする 37 if($con -> getLastHttpCode() != 200) 38 { 39 echo 'http error ' . $con -> getLastHttpCode(); 40 } 41 else 42 { 43 echo "ok"; 44 } 45 } 46 else if($_POST['mode'] == "get") //DM取得 ← できてない 47 { 48 $res = $con->get('direct_messages/events/list'); //とりあえずパラメータなしで送る。 49 if($con -> getLastHttpCode() != 200) 50 { 51 //403エラーが返っていた。詳細なエラー内容の確認方法がわからない。 52 //$resの中身は確認できなかった。nullなのかな? 53 echo 'http error ' . $con -> getLastHttpCode(); 54 } 55 else 56 { 57 foreach ($res -> events as $value) 58 { 59 echo $value -> id . "\r\n" . $value -> text . "\r\n"; 60 } 61 } 62 } 63 } 64?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/17 00:44
2019/06/17 05:28