我刚接触使用API,目前正在尝试在我正在开发的新应用程序中使用Trade Me API。
他们的authorisation guidelines表示他们使用OAuth来验证API调用,并且可以在查询字符串或授权标头中指定这些调用。
作为API调用的新手,我尝试使用guzzlehttp/oauth-subscriber
,但在尝试拨打电话时失败了。
所以目前我只是想将细节附加到查询字符串。
我想要的电话要求:
其中oauth_consumer_key
是消费者密钥,oauth_signature
是消费者密钥。
当我尝试访问此网址以测试网址是否正确时,https://api.tmsandbox.co.nz/v1/Listings/123.json?oauth_consumer_key=XXX&oauth_signature=XXX&oauth_signature_method=PLAINTEXT
我收到错误:
“ErrorDescription”:“无效的PLAINTEXT签名。”
我显然已经在上面的网址中替换了我的密钥,但我看不出上面的内容有什么问题,似乎与他们的文档相符。
有人可以指出我做错了吗?
答案 0 :(得分:1)
假设您正在使用Guzzle和Laravel,正如评论所述,这将是一个非常简单的示例,说明如何实现这一点(只需将其放入routes.php
):
Route::get( '/', function ()
{
$client = new GuzzleHttp\Client( ["base_uri" => "https://api.tmsandbox.co.nz/v1/"] );
$response = $client->request( "GET", "Listings/123.json", ["headers" => ["Authorization" => 'OAuth oauth_consumer_key="YOUR-CONSUMER-KEY", oauth_signature_method="PLAINTEXT", oauth_signature="YOUR-CONSUMER-SECRET&"']] );
return Response::json($response->getBody()->getContents());
} );