Q&A

[jQuery] LIFF内からajax通信を用いたMessaging APIの利用について

Messaging APIのうち、「プッシュメッセージを送る(POST https://api.line.me/v2/bot/message/push )」について、LIFF内からajax通信を用いて利用しようとすると、「Invalid CORS request」のメッセージと共に403が返ってきてしまいます。

リクエストは以下の通りです。

$.ajax({
    url: "https://api.line.me/v2/bot/message/push",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    headers: {
        "Authorization": "Bearer {My-Access-Token}"
    },
    data: {
        "to": "{User-ID}",
        "messages": [
                {
                    "type" : "text",
                    "text" : "hogehoge"
                }
            ]
    }
}).done(function () {
    //以下略

これを回避する方法について、どなたかご存知の方がいればご教示ください。

追記 ユーザではなく、Botに発言させたいです。

  • 0
  • 2
  • 3275
  • twitter facebook

ありがとうございます。 sendMessages()はBotではなくユーザの発言になってしまいますので、LIFFからBotに発言させたければ、ajax等で叩くしかないかと思っていました。(こちらの件、書き漏らしていました。申し訳ありません。追記しておきます) Access Tokenの件はご指摘の通りだと思いますので、諸々鑑みるとサーバサイドからAPIを利用するしかなさそうですね...。

ご回答、ありがとうございました。

  • 0

フロントエンドからのPush APIの実行はAccess Tokenが誰でも閲覧・使用可能になり、セキュリティ上問題があるので避けましょう。 liff.sendMessages() を使うか、サーバサイドでPush APIを使った送信の仕組みを実装するのが良いと思います。

https://developers.line.me/ja/reference/liff/#liffsendmessages()

  • 0
Are you sure? question.vm