私は新しくて学習中なので、アドバイスをいただければ幸いです:)学校のプロジェクトのTwitter API 1.1 GETリクエストから特定のデータを取得するための非常にシンプルなツールを作成しています。私は J7mbo のTwitterAPIExchange.phpとフォーマットを使用しています。データを配列に渡す HTML フォームを作成し、問題なく API にリクエストを POST できます。PHP の $getfield に変数を入力すると、GET リクエストから API に特定のデータを正常に出力することもできますが、フォームを使用して GET リクエストのデータを送信しようとすると、次のエラーが発生します。
Notice: Undefined offset: 1 in /var/www/exp/TwitterAPIExchange.php 行 158
警告: 31 行目の /var/www/exp/screen1.php の foreach() に無効な引数が指定されました
コードは次のとおりです。
ini_set('display_errors', 1);
if(!empty($_GET ['screen_name'])) {
require_once('TwitterAPIExchange.php');
$settings = array(
'oauth_access_token' => "MY_KEY_HERE",
'oauth_access_token_secret' => "MY_KEY_HERE",
'consumer_key' => "MY_KEY_HERE",
'consumer_secret' => "MY_KEY_HERE",
);
/** URL for REST request, see: https://dev.twitter.com/docs/api/1.1/ **/
$url = 'https://api.twitter.com/1.1/friends/list.json';
$getfield = $_GET['screen_name'];
$requestMethod = 'GET';
/** Note: Set the GET field BEFORE calling buildOauth(); **/
$twitter = new TwitterAPIExchange($settings);
$response = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
##This prints out the fields I am interested in##
$arrResults = json_decode($response,true);
foreach ($arrResults['users'] as $arrSearchResult) {
$strTweet = $arrSearchResult['created_at'] ;
$strTweet1 = $arrSearchResult['screen_name'] ;
print_r("<div class='tweet'>$strTweet $strTweet1</div>");
}
}
?>
<h3>Enter the name here</h3>
<form action="" method="GET">
<input type="text" name="screen_name" /><br />
<input type="submit" />
</form>
したがって、OAuth 配列にアクセス キーがない場合でも同じエラーが発生するため、OAuth の前にリクエストが不正な形式になっていると考えています。
API への POST リクエストでは、フォーム データは API 呼び出し配列に直接渡されますが、GET リクエストは別の方法で作成され、フォーム データを渡す方法がわかりません。これはうまくいきます:
$getfield = '?screen_name=TWITTER_SCREEN_NAME';
$getfield = $_GET['screen_name']; を試したときです。それがうまくいかないこと。お時間をいただき、ありがとうございます。