APIへの認証を試みるときにPECLOAuthを使用しています。
サンプルコード:
<?php
$requestUri = 'http://openapi.lovefilm.com/oauth/request';
$consumerKey = 'MYCONSUMERKEY';
$consumerSecret = 'MYSECRET';
$oauth = new OAuth($consumerKey, $consumerSecret);
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->setVersion('1.0');
$oauth->setTimestamp(mktime());
$oauth->enableDebug();
try
{
$req = $oauth->getRequestToken($requestUri, 'oob');
var_dump($req);
}
catch(OAuthException $e)
{
print '<pre>';
var_dump($e);
var_dump($oauth->debugInfo);
}
?>
彼らが提供する仕様(http://developer.lovefilm.com/ --registration req)には、以下のようなリクエストをPOSTする必要があると書かれています。
POST /oauth/request_token HTTP / 1.1ホスト:openapi.lovefilm.com認証:OAuth oauth_callback = "http%3A%2F%2Fyour-service.com%2Fsuccess"、oauth_consumer_key = "2blu7svnhwkzw29zg7cwkydn"、oauth_nonce = "5f38dbc02a "sPSVmqN%2FXu9k0wlZxF0PqPZwYGo%3D"、oauth_signature_method = "HMAC-SHA1"、oauth_timestamp = "1278499295"、oauth_version = "1.0"
ただし、この方法を使用すると、次のようになります。
$oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
生成されるリクエストは常にGETです。
誰か助けてもらえますか?
ありがとう、
ベン