Twitter REST API"无法对您进行身份验证。"

时间:2015-12-26 23:57:05

标签: php twitter-oauth

我一直在找一些寻求解决方案的帮助,但我找不到它。我知道我已经正确输入了令牌和密钥,并为我的应用正确设置了权限。我完全陷入困境

<?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 个答案:

答案 0 :(得分:1)

  1. 您不能在网址中包含查询字符串,也可以调用setGetfield。将查询参数全部移至setGetfield

  2. 迭代$string["statuses"]代替$string

  3. 经过这些修改后,生成的代码为:

    $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 />";
    }