簡體   English   中英

twitteroauth出錯,從搜索API中檢索推文

[英]Error with twitteroauth, retrieving tweets from search API

我正在嘗試使用twitteroauth使用Twitter搜索API檢索推文。

這是我的代碼:

/* Load required lib files. */
session_start();
require_once('twitteroauth/twitteroauth.php');
require_once('config.php');

/* If access tokens are not available redirect to connect page. */
if (empty($_SESSION['access_token']) || empty($_SESSION['access_token']['oauth_token']) || empty($_SESSION['access_token']['oauth_token_secret'])) {
    header('Location: ./clearsessions.php');
}
/* Get user access tokens out of the session. */
$access_token = $_SESSION['access_token'];

/* Create a TwitterOauth object with consumer/user tokens. */
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);

/* If method is set change API call made. Test is called by default. */
$content = $connection->get('account/verify_credentials');

$url = $_GET["url"];
$contents = $connection->get($url);
header ("Content-Type:text/json");
echo $contents;

我正在使用XMLHttpRequest從我的JavaScript調用這個PHP腳本。 我已經確認我使用了正確的網址(例如https://api.twitter.com/1.1/search/tweets.json?q=kate )。 我得到的錯誤是:

可捕獲的致命錯誤:第26行的OAuth / Twitter / loadJSON.php中無法將類stdClass的對象轉換為字符串。

第26行是:

echo $contents;

我已經查看了源代碼中的get()函數,看起來我應該期待一個JSON字符串,但是從錯誤消息中可能看起來並非如此,或者它可能無法對響應進行json_decode ?

這是我第一次使用twitteroauth; 任何幫助將不勝感激! 謝謝。

看起來我應該期待一個JSON字符串,但是從錯誤消息中看起來並非如此,或者它可能無法對響應進行json_decode?

恰恰相反。

由於一些json_decode原因, json_decode的設計者決定它應該返回一組嵌套的stdClass es。 如果沒有__toString 魔術方法,你不能直接echo任何類。

如果您正在嘗試檢查數據,那么您將需要打破一個更好的工具,例如var_dump ,它可以檢查任何PHP數據類型。

你可能會發現stdClasses有點惱人和脫節來處理。 true作為第二個參數傳遞給json_decode ,它將返回一組嵌套數組。

在這種特定情況下,看起來您希望傳遞JSON字符串。 雖然通過您正在使用的庫似乎無法立即實現,但通過json_encode發送數據應該可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM