0

次のコードを使用して、TwitterのAPIで検索を実行しています。

$.post('lib/themattharris-tmhOAuth-38bd48b/search.php',
       {q:'@something',
       pages:'1'}
)
.done(function(xhr) {
    try 
    {
        var tweets = $.parseJSON(xhr.responseText);
    }
    catch (e)
    {
        showError('Error : '+e.message);
        return;
    }
    if (tweets === null)
    {
        showError('Error : no tweets found');
        return;
    }

    $('#timeline').text(tweets.results[0].text);

})
.fail(function(xhr, textStatus, errorThrown) {
    showError('Error : ' + $.parseJSON(xhr.responseText).error);
})
.always(function() {
    $('#load').removeAttr('disabled');
});

しかし、「ツイート」は常にnullです。Mysearch.phpが検索を実行し、結果をエコーし​​ます。jsonlintで返されたJSONを確認しましたが、エラーは見つかりませんでした。

手がかりはありますか?

ここで編集search.php

    require_once 'tmhOAuth.php';
    require_once 'tmhUtilities.php';
    require_once 'secrets.php';
    session_start();

    $tmhOAuth = new tmhOAuth(array(
      'consumer_key'    => $consumerKey,
      'consumer_secret' => $consumerSecret,
      'user_token'      => $_SESSION['access_token']['oauth_token'],
      'user_secret'     => $_SESSION['access_token']['oauth_token_secret']
    ));

    $p['q'] = $_POST['q'];
    $p['pages'] = 1;
    $p['include_entities'] = 'true';

    $pages = intval($p['pages']);
    $results = array();

    $code = $tmhOAuth->request(
      'GET',
      'http://search.twitter.com/search.json',
      $p,
      false
    );

    if ($code !== 200) {
        header("HTTP/1.1 500 Internal Server Error");
        echo $tmhOAuth->response['response'];
        return;
    }     
    else
    {
        echo $tmhOAuth->response['response'];
    }
4

2 に答える 2

0

tweetsのスコープを変更してみてください。


...
var tweets;

try{...}
catch{...}

if (tweets === null)
{
    // does this work now?
}

etc.

于 2012-11-08T11:12:43.343 に答える
0

これはうまくいきました^^;

.done(function(myJson) {
    try 
    {
        var tweets = $.parseJSON(myJson);
    }

使うはずだと思った.responseText

編集:「成功コールバック関数には、応答のMIMEタイプに応じて、XMLルート要素、テキスト文字列、JavaScriptファイル、またはJSONオブジェクトである返されたデータが渡されます。 」

于 2012-11-08T11:25:56.230 に答える