Oauth签名,REST API

时间:2016-03-13 20:08:21

标签: php api oauth

我正在尝试访问胖秘密API。

https://platform.fatsecret.com/api/

我正在尝试使用胖秘密提供的密钥创建Oauth签名。当我尝试访问URL以获取数据时,我收到一条错误消息,说我的Oauth签名无效。

我使用base64_encode创建signiture,然后使用sha1哈希hmac。

这是我的代码,秘密密钥被清除,我是否以不正确的方式创建签名?或者任何人都可以看到我出错的地方。

谢谢

<?php
$requestTokenUrl = "http://platform.fatsecret.com/rest/server.api";
$oauth_consumer_key = "925f5e1a8b674a70b52eabf15f3265e7"; 
$nonce = md5(mt_rand());
$outh_signature = '';
$oauthSignatureMethod = "HMAC-SHA1"; 
$oauthTimestamp = time();
$oauthVersion = "1.0";
$secret_key = "My Secret Key";

$sigKey= $consumer_key . "&";

$sigBase = "method=food.get" . rawurlencode($requestTokenUrl) . "&"
    . rawurlencode("oauth_consumer_key=" . rawurlencode($oauth_consumer_key)
    . "&oauth_nonce=" . rawurlencode($nonce)
    . "&oauth_signature_method=" . rawurlencode($oauthSignatureMethod)
    . "&oauth_timestamp=" . $oauthTimestamp
    . "&oauth_version=" . $oauthVersion);

$oauthSig = base64_encode(hash_hmac('sha1', $secret_key, true));

$requestUrl = $requestTokenUrl . "?"
    . "food_id=33691"
    . "&method=food.get"
    . "&oauth_consumer_key=" . rawurlencode($oauth_consumer_key)
    . "&oauth_nonce=" . rawurlencode($nonce)
    . "&oauth_signature=" . rawurlencode($oauthSig)
    . "&oauth_signature_method=" . rawurlencode($oauthSignatureMethod)
    . "&oauth_timestamp=" . rawurlencode($oauthTimestamp)
    . "&oauth_version=" . rawurlencode($oauthVersion);

var_dump($requestUrl);

0 个答案:

没有答案