EDIT(7/8/16):以下のコードはそのまま動作します。私はデスクトップPCでそれをテストしました。別の開発者が役に立つと思うので、コードを残したい。私が持っている問題は無関係です - ファイアウォールやセキュリティソフトウェアのために、ノートパソコンのWAMPサーバーでHTTP POSTを実行できないようです。私は今日それについてもっと見るつもりです。WAMPサーバー(localhost)上のPHPでHealth Graph API許可フローを実装する際の問題
私は、「ユーザーの健康グラフのアカウントにアプリケーションを接続する」、ここでの手順を以下しています: https://runkeeper.com/developer/healthgraph/getting-started
Iは、ステップ#3で立ち往生しています(健康グラフAPIトークンにPOSTリクエストを作りますエンドポイント。
以下のコードの後では、$ responseは空白で、$ httpResponseCodeは0です。CURL POSTは整形式であり、進める方法がわかりません。
これはリダイレクトページです。このページは、ステップ#1の後にユーザーが「http://localhost/my-site/redirect.php」に配置されています。私はclient_idとclient_secretを削除しました。
<!DOCTYPE html>
<body>
<?php
# RunKeeper API
define('client_id', xxxxxxx);
define('client_secret', xxxxxxx);
define('auth_url', 'https://runkeeper.com/apps/authorize');
define('access_token_url', 'https://runkeeper.com/apps/token');
define('redirect_uri','http://localhost/my-site/redirect.php');
define('api_base_url','https://api.runkeeper.com');
if ($_GET['code']) {
$auth_code = $_GET['code'];
$params = http_build_query(array(
'grant_type' => 'authorization_code',
'code' => $auth_code,
'client_id' => client_id,
'client_secret' => client_secret,
'redirect_uri' => redirect_uri
));
$options = array(
CURLOPT_URL => access_token_url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
$responseInfo = curl_getinfo($curl);
$httpResponseCode = $responseInfo['http_code'];
curl_close($curl);
$decoderesponse = json_decode($response);
$access_token = $decoderesponse->access_token;
}
?>
</body>
</html>
として値で$オプション配列に渡します。 – RiggsFolly