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

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

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

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

PHP

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

API

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

解決済

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

退会済みユーザー

退会済みユーザー

総合スコア0

Twitter

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

PHP

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

API

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

1回答

0評価

0クリップ

898閲覧

投稿2022/04/14 14:30

編集2022/04/15 09:01

こちらのサイトを参考に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

// TwitterOAuthを利用するためComposerのautoload.phpを読み込み require __DIR__ . '/vendor/autoload.php'; // TwitterOAuthクラスをインポート use Abraham\TwitterOAuth\TwitterOAuth; // Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット const TW_CK = 'xxxxxxxx'; // Consumer Keyをセット const TW_CS = 'xxxxxxxx'; // Consumer Secretをセット const TW_AT = 'xxxxxxxx'; // Access Tokenをセット const TW_ATS = 'xxxxxxxx'; // Access Token Secretをセット // TwitterOAuthクラスのインスタンスを作成 $connect = new TwitterOAuth( TW_CK, TW_CS, TW_AT, TW_ATS ); // Twitter API v2. を利用する場合 $connect->setApiVersion('2'); //←←←←←←←←変更点 $statuses = $connect->get( 'statuses/user_timeline', // 取得するツイートの条件を配列で指定 array( // ユーザー名(@は不要) 'screen_name' => 'nhk',//←←←←←←←←変更点 // ツイート件数 'count' => '5', // リプライを除外するかを、true(除外する)、false(除外しない)で指定 'exclude_replies' => 'true', // リツイートを含めるかを、true(含める)、false(含めない)で指定 'include_rts' => 'false' ) ); // ツイート本文を格納する変数 $text_list = []; // 取得したツイート情報のオブジェクトから、ツイート本文を取得し配列$id_listに格納 foreach( $statuses as $tweet ){ $text = $tweet->text; array_push( $text_list, $text ); }

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

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

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

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

とあります。

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

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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Twitter

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

PHP

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

API

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