ユーザー指定メッセージ送信時のエラー(content does not exist)

山尾Y

2022.06.03既読 2710

API2.0でBotからユーザー指定でメッセージを送信しようとしています。Service Account認証 (JWT)を行いAccess tokenを取得するところまではできましたが、その後以下のコードでメッセージを送信すると以下のようなエラーが返されます。
payload部分の構造が間違っているのかと何度も見直してみましたがどうもよく分かりません。お気づきの点がありましたらお聞かせください。
エラー:
resulted in a `400 Bad Request` response: {"code":"INVALID_PARAMETER","description":"content does not exist."}
コード:
$user_message_api = 'https://www.worksapis.com/v1.0/bots/'.$bot_id.'/users/'.$user_id.'/messages';
$headers = ['Content-Type' => 'application/json; charset=UTF-8',
      'Authorization' => 'Bearer '.$access_token];
$payload = [
           'headers' =>$headers,
           'content' => [
               'type' => 'text',
               'text' => 'test message'
           ]
       ];
       
$http = new \GuzzleHttp\Client;
$response = $http->request('POST', $user_message_api, $payload);

コメント2

  • 업데이트 된 답글입니다.

    佐藤正宗

    これ、PHP の Guzzle パッケージとやらで合ってます?
    Postman の Sample Code で良ければ下に貼り付けておきますので参考になれば。

    <?php
    $client = new Client();
    $headers = [
     'Content-Type' => 'application/json',
     'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=='
    ];
    $body = '{
     "content": {
       "type": "text",
       "text": "text"
     }
    }';
    $request = new Request('POST', 'https://www.worksapis.com/v1.0/bots/xxxxxx/users/xxxxxxxxxxxxxx/messages', $headers, $body);
    $res = $client->sendAsync($request)->wait();
    echo $res->getBody();

    2022.06.06

    0
  • 업데이트 된 답글입니다.

    山尾Y 投稿者

    ありがとうございます。いただいたコードを参考にしてやってみたところ、正常に送信できました。

    2022.06.07

    0
前の投稿LINE WORKSをIdPとしたSAML2 SSOの際LineWorksをログインした後、空白ページが表示される
次の投稿Get user messages
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。