我有一个数组$parameters = array_merge($oauth, $fields);
,其中包含screen_name和count。
无论我尝试什么,如果我添加它们我都会收到错误
无法验证您的身份。
一次尝试是:
$settings = array(
'oauth_access_token' => "304291054-X3AyJrHYUswZQbXXXXXXXXXXXXXOKw53xOi9E",
'oauth_access_token_secret' => "iWuakK6iWsfXXXXXXXXXSGcW6WeqxLsiQf",
'consumer_key' => "odXXXXXXXXXXkBg6GmsTg",
'consumer_secret' => "5LoqUsXXXXXXXXXXXXXXXXi6zgmQ"
);
$base_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$http_method = 'GET';
$fields = array(
'screen_name' => 'wearethegun',
'count' => '5'
);
$oauth = array(
'oauth_consumer_key' => $settings['consumer_key'],
'oauth_nonce' => time(),
'oauth_signature_method' => 'HMAC-SHA1',
'oauth_token' => $settings['oauth_access_token'],
'oauth_timestamp' => time(),
'oauth_version' => '1.0'
);
// todo, fields
$parameters = $oauth;
ksort($parameters);
$base = $http_method.'&'.
rawurlencode($base_url).'&'.
rawurlencode(http_build_query($parameters));
$key = rawurlencode($settings['consumer_secret']).'&'.
rawurlencode($settings['oauth_access_token_secret']);
$signature = base64_encode(hash_hmac('sha1', $base, $key, true));
$signature = rawurlencode($signature);
$oauth_header = '';
foreach ($oauth as $key => $value) {
$oauth_header .= $key.'="'.$value.'", ';
}
$oauth_header .= 'oauth_signature="' . $signature . '"';
$curl_options = array(
CURLOPT_HTTPHEADER => array("Authorization: Oauth {$oauth_header}", 'Expect:'),
CURLOPT_HEADER => false,
CURLOPT_URL => $base_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
);
$curl_request = curl_init();
curl_setopt_array($curl_request, $curl_options);
$json_str = curl_exec($curl_request);
curl_close($curl_request);
$json = json_decode($json_str, true);
echo "<pre>";
print_r($json);
echo "</pre>";
我不会列出所有会导致噪音的尝试。
不使用参数字段一切正常。 有人可以帮忙,我完全迷失在这里。
BitSet