Q&A

リッチメニューをタップすると、メッセージ表示して、そのあとopenKeyboardってできますか?

前提・実現したいこと

Google Apps ScriptでLINEbotを作っています。

リッチメニューをタップすると、「時間を入力してください」というテキストメッセージが表示され、そのあとにopenKeyboardでキーボードを表示する仕様は可能でしょうか。できるとすれば、どのように実現するのか教えてほしいです。

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

上記が実現できるかどうか調べても分からない。

該当のソースコード

function makeRichmenu() {

const url = url_richmenu;

const postData = { // タップ領域全体のサイズ 'size': { 'width': 2500, 'height': 843 }, // デフォルトでリッチメニューを表示するかどうか 'selected': true, // リッチメニュー管理用の名前 ユーザには非公開 'name': 'richmenu01', // チャットバーに表示されるテキスト 'chatBarText': 'メニューの表示・非表示', //タップ領域群 'areas': [ { 'bounds': { // 左0px地点から 'x': 0, // 上0px地点から 'y': 0, // 幅833px 'width': 833, // 高さ843px 'height': 843 }, 'action': { "type": "postback", "label": "ごみの出し方を調べる", "data": "action=keyboard", "displayText": "ごみの出し方を調べる", "inputOption": "openKeyboard" } }, { 'bounds': { 'x': 833, 'y': 0, 'width': 833, 'height': 843 }, 'action': { 'type': 'uri', 'uri': 'https://' } }, { 'bounds': { 'x': 1666, 'y': 0, 'width': 833, 'height': 843 }, 'action': { 'type': 'uri', 'uri': 'https://' } } ] };

const headers = { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer ' + ACCESS_TOKEN };

const options = { 'method': 'post', 'headers': headers, 'payload': JSON.stringify(postData) };

let json = UrlFetchApp.fetch(url, options); json = JSON.parse(json); console.log(json.richMenuId);

}

  • 0
  • 1
  • 145
  • twitter facebook

リッチメニューにはアクションが設定できるとあるので、

ドキュメントのアクションの部分を見ると良いです。 https://developers.line.biz/ja/reference/messaging-api/#postback-action

ポストバックアクション

  • displayText アクションの実行時に、ユーザーのメッセージとしてLINEのトーク画面に表示されるテキスト。
  • inputOption アクションに応じた、リッチメニューなどの表示方法。以下のいずれかの値を指定します。 openKeyboard: キーボードを開く

この2つを指定したポストバックアクションでできます。最近これを使っているアカウントが多いですね。

  • 2
本当によろしいですか? question.vm