2016-10-28 9 views
0

私は、Wordpress Gravity Forms Web APIを使用してフォームからエントリを取得し、単純に表示しようとしています。私は今までこれを持っていますが、APIキーと私有鍵が正しいことを確認しました。私が何をしても、私は禁止された応答を得ます。Gravity Forms WebAPI(GET Forbidden - PHP)

ここに私のコードですが、あなたが気づくことが間違っていることはありますか?

<?php 
$api_key = 'here'; 
$private_key = 'here'; 
$method = 'GET'; 
$endpoint = 'http://website.co.uk/gravityformsapi/'; 
//$route = 'entries'; 
$route = 'forms/1/entries/'; 
$expires = strtotime('+60 mins'); 
$string_to_sign = sprintf('%s:%s:%s:%s', $api_key, $method, $route, $expires); 
$sig = calculate_signature($string_to_sign, $private_key); 

$api_call = $endpoint.$route.'?api_key='.$api_key.'&signature='.$sig.'&expires='.$expires; 


$ch = curl_init($api_call); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 
curl_close($ch); 

print_r($response); 

echo $api_call; 
function calculate_signature($string, $private_key) { 
    $hash = hash_hmac("sha1", $string, $private_key, true); 
    $sig = rawurlencode(base64_encode($hash)); 
    return $sig; 
} 
?> 

ありがとうございます!

答えて

1

偽装設定のユーザーアカウントに適切な機能(この場合はgravityforms_view_entries)が必要です。その機能をロールに明示的に割り当てる必要があるかもしれません。

また、ルートからスラッシュを削除してみます。

関連する問題