在使用变量时连接twitter api get请求

时间:2015-07-07 23:50:25

标签: php api twitter

我有一个lat,很久就像这样保存了,

$lat_value = $_REQUEST['latitude'];
$lon_value = $_REQUEST['longitude'];

将变量添加到$getfield String时,

$getfield = '?q=test&geocode='.$lat_value.','.$lon_value.',1mi&count=100';

我一直收到这个错误,

"You must provide valid coordinates, IP address, query, or attributes." }

如果这是一个语法错误,有人可以解释为什么这对我不起作用。

完整的请求和响应代码,

<?php
error_reporting(E_ALL);

$lat_value = $_REQUEST['latitude'];
      $lon_value = $_REQUEST['longitude'];

require_once('TwitterAPIExchange.php');

/** Set access tokens here - see: https://dev.twitter.com/apps/ **/
$settings = array(
    'oauth_access_token' => "XXX",
    'oauth_access_token_secret' => "XXX",
    'consumer_key' => "XXX",
    'consumer_secret' => "XXX"
);

$url = 'https://api.twitter.com/1.1/geo/search.json';
$getfield = '?q=test&geocode='.$lat_value.','.$lon_value.',1mi&count=100';

$requestMethod = 'GET';

$twitter = new TwitterAPIExchange($settings);

// Response from twitter 
$response = $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest();

 var_dump(json_decode($response));

1 个答案:

答案 0 :(得分:0)

根据documentation所说,你必须指定lat,long,ip或query,而你没有指定任何一个。我在查询字符串中看不到任何这些参数。

尝试使用此查询:

$getfield = "query=test&lat={$lat_value}&long={$lon_value}&accuracy=1m&max_results=100"