eventful api request_token方法没有返回Request Token

时间:2014-09-08 20:09:54

标签: php api

我正在尝试使用eventful api(http://api.eventful.com/docs/auth)的request_token方法对用户进行身份验证。这是我的代码。

$tmhOAuth = new tmhOAuth( array('use_ssl' => false, 'method' => 'POST')  );
$tmhOAuth->reconfigure(array('user_agent' => 'Eventful_PHP_API'));
$code = $tmhOAuth->request('POST', 'http://eventful.com/oauth/request_token',
array(
'app_key' => 'app_key','oauth_callback' =>     'http://example.com/callback',
'oauth_consumer_key' => 'consumer_key',
'oauth_consumer_secret' => 'consumer_secret',
),true);
if($code == 200 ){
// success
}else{
// error
}

但我在$ code中遇到404错误。什么可能是错的

2 个答案:

答案 0 :(得分:2)

您必须在POST请求中添加其他参数。

Eventful API Docs中所述:

  
      
  • 所有oAuth请求必须使用HMAC-SHA1签名进行签名。 //看起来你没有这样做
  •   
  • 所有oAuth请求必须包含时间戳和nonce参数。 //你还没有这样做
  •   
  • 如果在请求数据时获得404,则可能是在需要POST时发出GET请求,不发送正确的参数,或者没有使用正确的参数计算签名。如果您遇到问题,请在此表单中输入所有相关参数,并查看其计算的签名。将它与您实际发送的签名进行比较。重新登记以输入您的app_key和您发送到参数行的任何其他参数,并将HTTP方法设置为正确的值。对于初始请求令牌,令牌和token_secret为空。
  •   

他们提供的示例包括几个您未包含的查询字符串参数,例如oauth_consumer_keyoauth_nonceoauth_signatureoauth_signature_methodoauth_timestampoauth_version

他们的例子:

http%3A%2F%2Fexample.com%2Fcallback&oauth_consumer_key=bafe29a8e561b3d15803&oauth_nonce=1cdb7f498ba9811513f2&oauth_signature=8EfteAvDBuE8MTVBABg2WhXnzY0%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1336765460&oauth_version=1.0 HTTP/1.1

答案 1 :(得分:0)

确定。经过一天的研究,我找到了答案。这是修改后的代码。

$tmhOAuth = new tmhOAuth(array(
'application_key'    => 'my_app_key',
'consumer_key' => 'my_consumer_key',
'consumer_secret'  => 'my_consumer_secret'
));
$code = $tmhOAuth->request('POST', 'http://eventful.com/oauth/request_token',
array(
'oauth_callback'  => "http://example.com/callback"
));

if($code == 200 ){
// success
}else{
// error
}

特别感谢“tekin' (https://github.com/tekin)他的红宝石多事api提供指导(https://github.com/tekin/eventful_api