Q&A

LIFFブラウザからメッセージ送信でエラーとなり送信できない

なぜメッセージ送信が出来ないのかわかっていません。 推測でもけっこうですので、教えていただけたらと思います。

発生している問題・エラーメッセージ

①LINEリッチメニュー ↓ ②リッチメッセージ選択イベント(は伏せています)   [ "type" => "uri", "label" => "入力", "uri" => "https://liff.line.me/************" ]

↓ ③LINEにてLIFFブラウザ開く ↓ ④LIFFブラウザ内送信ボタンクリック処理(JavaScript)  下記ソースコード呼び出し  ここでエラー発生し、送信されず。

●エラー内容  Error!!! liff send TypeError: Failed to fetch

 →「TypeError: Failed to fetch」の部分がエラー返却内容

該当のソースコード

JavaScript LIFFブラウザ内送信ボタンクリック処理 「*」は伏せています


liff.init({
		// 自分のLIFF ID(URLから『https://liff.line.me/』を除いた文字列)を入力する
		liffId: "********************"
	}).then(() => { // 初期化完了. 以降はLIFF SDKの各種メソッドを利用できる
		setEvent();
	}).catch((err) => {
		console.log(err.code, err.message);
	});
	
function setEvent(){
    //送信ボタン
		$("#send_answer").on("click",sendAnswer);
	}	
	
function sendAnswer(){

	if (liff.isLoggedIn()) {

				liff
				.sendMessages([
					{
					type: "text",
					text: "Hello, World!",
					},
				])
				.then(() => {
					liff.closeWindow();
					return false;

				})
				.catch((err) => {
					alert("Error!!! liff send " + err);
					liff.closeWindow();
				});

		} else {
			alert("Error!!! LINE no Login");	
		}
	
}

補足情報(FW/ツールのバージョンなど)

<script type="text/javascript" src="../../js/jquery-2.1.4.min.js"></script>

<script charset="utf-8" src="https://static.line-scdn.net/liff/edge/2/sdk.js"></script>

  • 0
  • 3
  • 615
  • twitter facebook

LIFFアプリ作成しているかたのブログをひたすら確認して、 そこからヒントを得て、自己解決できました。 送信時に初期化が必要でした。というより初期化のなかで送信処理を入れないといけない、というのが正しいのかな。 ヒントなかったら解けませんでした。

  • 0

@シュークリームさん

ドキュメントを見てみるとチャネルの設定に chat_message.write というscopeが必要だったり、 1対1のトークルームから起動したLIFFアプリでのみ利用できます と書いてあったりしますが、

ありがとうございます。 https://www.happylifecreators.com/blog/20210806/ 今この方などを見ているのですが、 いままではMessaging APIのチャネルを作って、そこでLIFFを利用していたのですが、 別Messaging APIのチャネルを新たに作る必要が出てきまして、 たしか今年からLIFFはLINE LoginチャネルにしかLIFFが登録できなくなったと思います。 そのため 〇今の状態  ①Messaging APIのチャネル(リッチメッセージイベントなどは出来ている)  ②LINE Loginチャネルを作成、LIFF登録(chat_message.writeにはチェック済)   ①にはLIFFが登録出来なくなっているためチャネル登録。   グループチャットなどではなく、1vs1トークルームです これで①よりLIFFを呼び出しというかたちです。 →ここに何か出来ない問題があるんでしょうかね?

  • 0

https://developers.line.biz/ja/reference/liff/#send-messages

ドキュメントを見てみるとチャネルの設定に chat_message.write というscopeが必要だったり、 1対1のトークルームから起動したLIFFアプリでのみ利用できます と書いてあったりしますが、 そのあたりは確認済みでしょうか?

  • 1
Are you sure? question.vm