カカオトークでメッセージを送信する処理をPHPで試してみました!
「https://developers.kakao.com/」に接続し、My Applicationに移動してアプリケーションを追加します。
追加したアプリケーションをクリックすると、REST API Keyを確認できます。
左のメニューで「Consent Items」を選択し、以下のように設定を行います。
「https://kauth.kakao.com/oauth/authorize?client_id=《REST API Key》&redirect_uri=《Redirect URI》&response_type=code&scope=profile_nickname,friends,talk_message」に接続してアプリの利用に同意します。
Laravelで以下のコードを作成して動かしてみました。
$response = Http::asForm()->post('https://kauth.kakao.com/oauth/token', [
'grant_type' => 'authorization_code',
'client_id' => '《REST API Key》',
'redirect_uri' => '《リダイレクト先》',
'code' => '《認可コード》',
]);
$tokens = $response->json();
Log::debug(カカオOauthログインのトークンを確認', ['tokens' => $tokens]);
Laravelログを確認したら、以下の結果になりました。
[YYYY-MM-DD hh:mm:ss] local.DEBUG: カカオOauthログインのトークンを確認 {"tokens":{"access_token":"《アクセストークン》","token_type":"bearer","refresh_token":"《リフレッシュトークン》","expires_in":21599,"scope":"talk_message profile_nickname friends","refresh_token_expires_in":5183999}}
今回は、自分にカカオトークのメッセージを送信するコードを作成して動かしてみました。
$tokens['access_token'] = '《アクセストークン》';
$data = [
'template_object' => json_encode([
'object_type' => 'text',
'text' => 'Hello, world!',
'link' => [
'web_url' => 'https://developers.kakao.com',
'mobile_web_url' => 'https://developers.kakao.com',
],
])
];
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . $tokens['access_token'],
'Content-Type' => 'application/x-www-form-urlencoded',
])->asForm()->post('https://kapi.kakao.com/v2/api/talk/memo/default/send', $data);
Log::debug('カカオにメッセージ送信結果', ['response' => $response]);
Laravelログを確認したら、以下の結果になりました。
[YYYY-MM-DD hh:mm:ss] local.DEBUG: カカオにメッセージ送信結果 {"response":{"Illuminate\\Http\\Client\\Response":"{\"result_code\":0}"}}
自分のカカオトークのメッセージを確認したらメッセージが送信されていたことが確認できました。