Twitter REST API”;无法对您进行身份验证&”;


Twitter REST API "Could not authenticate you."

我到处寻找寻找解决方案的帮助,但就是找不到。我知道我已经正确输入了令牌和密钥,并为我的应用程序正确设置了权限。我完全被卡住了

<?php
require_once("TwitterAPIExchange.php");
$settings = array(
    "oauth_access_token" => "2417489002-zSklTBdkf0qidQQZq3TiEa2IlAxh6lu5aCG988G",
    "oauth_access_token_secret" => "VTY7I731dDJfcs3myeKp14TIewUI73tDB62Z8Cncbl46o",
    "consumer_key" => "bYKS1A8gKcVF7LFy0ZaSWR8J6",
    "consumer_secret" => "  UCakq879nUFQe6HCHCiXRj4ZThFOFsADvAx95oD5xglpXau1Ra"
);
$url = "https://api.twitter.com/1.1/search/tweets.json?q=propane";
$requestMethod = "GET";
$getfield = "?screen_name=iagdotme&count=20";
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(), $assoc = TRUE);
if($string["errors"][0]["message"] != "") {
    echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error messsage:
    </p><p><em>".$string[errors][0]["message"]."</em></p>";
    exit();
}
foreach($string as $items) {
    echo "Time and Date of Tweet: ".$items['created_at']."<br/>";
    echo "Tweet: ".$items["user"]["name"]."<br/>";
    echo "Tweeted by: ".$items["user"]["name"]."<br/>";
    echo "Screen name: ".$items["user"]["screen_name"]."<br/>";
    echo "Followers: ".$items["user"]["followers_count"]."<br/>";
    echo "Friends: ".$items["user"]["friends_count"]."<br />";
    echo "Listed: ".$items["user"]["listed_count"]."<br /><hr />";
}
?>
  1. URL中不能有查询字符串,也不能同时调用setGetfield。将查询参数全部移入setGetfield

  2. $string["statuses"]而不是$string上迭代。

经过这些修改后,得到的代码是:

$url = "https://api.twitter.com/1.1/search/tweets.json";
$requestMethod = "GET";
$getfield = "?q=propane&screen_name=iagdotme&count=20";
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(), $assoc = TRUE);
if($string["errors"][0]["message"] != "") {
    echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error messsage:
    </p><p><em>".$string[errors][0]["message"]."</em></p>";
    exit();
}
foreach($string["statuses"] as $items) {
    echo "Time and Date of Tweet: ".$items['created_at']."<br/>";
    echo "Tweet: ".$items["user"]["name"]."<br/>";
    echo "Tweeted by: ".$items["user"]["name"]."<br/>";
    echo "Screen name: ".$items["user"]["screen_name"]."<br/>";
    echo "Followers: ".$items["user"]["followers_count"]."<br/>";
    echo "Friends: ".$items["user"]["friends_count"]."<br />";
    echo "Listed: ".$items["user"]["listed_count"]."<br /><hr />";
}