前提・実現したいこと
短期アクセストークンをPHPで取得したい。
発生している問題・エラーメッセージ
curlを走らせると以下のようなエラーとなってしまいます。***はIDとシークレットですので伏せました。
array (
'error' => 'invalid_request',
'error_description' => 'Parameter conditions "grant_type=refresh_token" OR "grant_type=client_credentials" OR "grant_type=authorization_code" not met for actual request parameters: "grant_type={client_credentials}, client_id={*********}, client_secret={*******************"}',
)
該当のソースコード
<?php
//ポストデータ
$post_data = [
'grant_type' => 'client_credentials',
'client_id' => LINE_CHANNEL_ID,
'client_secret' => LINE_CHANNEL_SECRET
];
$post_data = http_build_query($post_data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.line.me/v2/oauth/accessToken');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded'
)
);
$result = curl_exec($ch);
$res_curl = curl_getinfo($ch);
curl_close($ch);
$response = substr($result, $res_curl['header_size']);
試したこと
ネット上にあったfile_get_contentsだと取得できましたが、cURLで出来たらなと考えています。
補足情報(FW/ツールのバージョンなど)
http_build_queryがあっても無くても同じエラーが出力されています。