質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2619閲覧

TwitterOAuthで API v2 のタイムラインが取得できない

退会済みユーザー

退会済みユーザー

総合スコア0

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2022/04/14 14:30

編集2022/04/14 17:42

こちらのサイトを参考にTwitterのタイムラインを取得しようとしています
【Twitter API】ツイートを取得するPHPスクリプトの例|TwitterOAuth

v2を利用するために $connect->setApiVersion('2'); をコメントアウトしています

しかしながら、$statuses には null しか返ってきません。
$connect->setApiVersion('2'); をコメントアウトして v1.1? にするとエラー453 が出力されます

プロジェクトを作成すると基本的に v2 で利用となっていて、v1.1を使用するにはアップグレードの申請が必要のようです
いずれ v1.1も廃止されることを見越して v2 で作成しようと思っています

何が原因で取得のかわかりますでしょうか?
よろしくお願いします。

※Consumer Key,Consumer Secret はそれぞれ API Key,API Key Secret をセットしています

php

1// TwitterOAuthを利用するためComposerのautoload.phpを読み込み 2require __DIR__ . '/vendor/autoload.php'; 3// TwitterOAuthクラスをインポート 4use Abraham\TwitterOAuth\TwitterOAuth; 5 6// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット 7const TW_CK = 'xxxxxxxx'; // Consumer Keyをセット 8const TW_CS = 'xxxxxxxx'; // Consumer Secretをセット 9const TW_AT = 'xxxxxxxx'; // Access Tokenをセット 10const TW_ATS = 'xxxxxxxx'; // Access Token Secretをセット 11 12// TwitterOAuthクラスのインスタンスを作成 13$connect = new TwitterOAuth( TW_CK, TW_CS, TW_AT, TW_ATS ); 14// Twitter API v2. を利用する場合 15$connect->setApiVersion('2'); //←←←←←←←←変更点 16 17$statuses = $connect->get( 18 'statuses/user_timeline', 19 // 取得するツイートの条件を配列で指定 20 array( 21 // ユーザー名(@は不要) 22 'screen_name' => 'nhk',//←←←←←←←←変更点 23 // ツイート件数 24 'count' => '5', 25 // リプライを除外するかを、true(除外する)、false(除外しない)で指定 26 'exclude_replies' => 'true', 27 // リツイートを含めるかを、true(含める)、false(含めない)で指定 28 'include_rts' => 'false' 29 ) 30); 31 32// ツイート本文を格納する変数 33$text_list = []; 34// 取得したツイート情報のオブジェクトから、ツイート本文を取得し配列$id_listに格納 35foreach( $statuses as $tweet ){ 36 $text = $tweet->text; 37 array_push( $text_list, $text ); 38}

phpstormのデバッグにて $connect->response を確認すると 404 が返っていました。
イメージ説明

Twitterの処理で書きを試してみました。
'statuses/user_timeline','account/verify_credentials','users','search/tweets'
すべてhttpCodeが404になります

こちらのサイト エラーコードと応答 をみると 404 は

リクエストしたURLが無効か、ユーザー情報などのリクエストしたリソースが存在しません。またリクエストした形式が、リクエスト対象のメソッドでサポートされていない場合も返されます。

とあります。

しかしながら、URLは指定していません。tokenも何度も調べましたが、これ以外のtokenは見つけられず、間違っているとどうしても思えません。

でも、どこかが間違っている…ということだと思うのですが…完全に手詰まっています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

解決しました
v1.1とv2 では エンドポイントの呼び出しが大部分変更になっていました
ここで取得したい内容を調べてから実行すると、ただしく情報を得ることができました

https://developer.twitter.com/apitools/api

投稿2022/04/15 00:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問