Badgeville REST API を PHP 5.3、curl 7.22 アプリケーションと統合しています。
BV の API ドキュメントはすべて、例としてコマンド ラインの curl 呼び出しを使用しています。これらの例を実行すると、正常に動作します。
PHP Curl クラスで同じことをしようとすると、BV サーバーから常に 500 エラーが発生します。
Chrome の Advanced Rest Client 拡張機能と同義の機能を実行しようとしました。
PHP カールの例:
$ch = curl_init('http://sandbox.v2.badgeville.com/api/berlin/[private_api_key]/users.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
if($this->getRequestType() == 'POST')
{
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
array(
'user[name]' => 'Generic+Username',
'user[email]' => 'johndoe%40domainname.com'
);
);
}
$response = curl_exec($ch);
Rest クライアントの例:
URL: http://sandbox.v2.badgeville.com/api/berlin/[private_api_key]/users.json
ヘッダーなしの POST ペイロード:
user[name]=Generic+Username&user[email]=johndoe%40domainname.com
コマンド ラインの curl 呼び出しを手動で作成しshell_exec()
、それを で実行しましたが、それを行う必要はありません。
私の調査では、Drupalモジュールが見つかりました。すべての API 呼び出しは呼び出しによって行われfsockopen()
ます。
PHP Curl クラスを使用して Badgeville 呼び出しを成功させる方法はありますか?