【问题标题】:get twitter tweet likes,favorites and retweets by its url twiiter api php laravel通过其 url twiiter api php laravel 获取 twitter 推文喜欢、收藏和转发
【发布时间】:2016-07-19 13:03:03
【问题描述】:

您好,我正在使用 Twitter TwitterAPIExchange(http://github.com/j7mbo/twitter-api-php) laravel 5.2。 我想做的是通过它的 url 获得 twitter 的喜欢、收藏和转发。这里是 url http://imgurl.co/760598324/1835795511

这是我尝试过的

$settings = array(
            'oauth_access_token' => access_token,
            'oauth_access_token_secret' => access_token_secret,
            'consumer_key' => CONSUMER_KEY,
            'consumer_secret' => CONSUMER_SECRET
        );
        $encde = urlencode('http://imgurl.co/760598324/1835795511');
        $url = "https://api.twitter.com/1.1/search/tweets.json?url=".$encde;
        $requestMethod = 'GET';

        $twitter = new TwitterAPIExchange($settings);
        $data =  $twitter->buildOauth($url, $requestMethod)
            ->performRequest();
        echo "<pre>";
        print_r($data);

它给了我这个错误

{"errors":[{"code":32,"message":"Could not authenticate you."}]}

如果我直接传递url而不编码,那么它会显示整个页面数据,就像我们在浏览器中打开url时一样。

但使用 facebook graph api 我只需将 url 粘贴到其 facebook graph api explorer 中即可从 url 获取数据

我还在 TwitterAPIExchange 中设置了CURLOPT_SSL_VERIFYPEER =&gt; falseperformRequest function

我也试过这个解决方案 Twitter API to get tweet and re-tweets count in php 但它说

file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is known.

这是解决上述错误后的响应

{
  "statuses": [

  ],
  "search_metadata": {
    "completed_in": 0.006,
    "max_id": 715462198051602432,
    "max_id_str": "715462198051602432",
    "query": "http%3A%2F%2Fimgurl.co%2F760598324%2F1835795511",
    "refresh_url": "?since_id=715462198051602432&q=http%3A%2F%2Fimgurl.co%2F760598324%2F1835795511&include_entities=1",
    "count": 15,
    "since_id": 0,
    "since_id_str": "0"
  }
}

它没有给我任何推特喜欢、收藏和转发的数据

【问题讨论】:

    标签: php laravel curl twitter twitter-oauth


    【解决方案1】:

    给定情况下的error code 32 表示您的请求无效(格式错误)。

    您的请求存在的问题是它传递了错误的数据。 API 端点 search/tweets 没有 url 参数。此外,还有q 参数是必需的。由于你没有传递q参数,所以你的请求是无效的。

    因此您必须将数据作为q 参数传递。

    顺便说一句,您不需要手动对数据进行 url 编码并附加到 URL。 TwitterAPIExchange 有适当的方法setGetfield 用于设置GET 参数。

    所以你的代码应该是这样的:

    $url = "https://api.twitter.com/1.1/search/tweets.json";
    $data = 'q=http://imgurl.co/760598324/1835795511';
    $twitter = new TwitterAPIExchange($settings);
    $data = $twitter->setGetfield($data)->buildOauth($url, 'GET')
    ->performRequest();
    

    【讨论】:

    • 谢谢我已经尝试过你的解决方案它现在没有给我错误。但它在状态数组中给了我空数据我已经编辑了我的问题并将在问题中放入 mu 回复。请帮助我...
    • 恐怕您无法搜索特定 URL 以了解推文中的存在。此处列出了您可以应用于搜索的所有参数/设置:12。而且似乎 twitter API 不允许你想要的。
    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 2012-11-03
    • 1970-01-01
    • 2017-07-14
    • 2018-09-10
    • 1970-01-01
    • 2012-09-04
    • 2014-10-13
    相关资源
    最近更新 更多