postbackのデータ欠損について
お世話になっております。
リストテンプレートのactionにpostbackを設定し、画面上から対応のボタンをクリックすると、callbackで送信されるpostbackのデータが欠損します。
ダブルコーテーション「"」以降のデータが切り捨てられているように見えます。
こちらの動作についてご確認頂き、対応方法等をお教えいただければと思います。
リストテンプレートに登録したデータは以下となります。
⇒ postbackの値にjson文字列を設定
'''
{
"accountId": "account@domain",
"content": {
"elements": [
{
"title": "タイトル",
"action": {
"type": "message",
"label": "ボタン",
"postback": "{\"id\":\"1234\",\"num\":\"1593674300974\"}"
}
}
],
"actions": [
[
{
"type": "message",
"label": "リセット",
"postback": "{\"id\":\"5678\",\"num\":\"1593674300974\"}"
}
]
],
"type": "list_template"
}
}
'''
callbackから送信されたデータは以下となります。
⇒ postbackの値の値が欠損しています
'''{
"type": "message",
"source": {
"accountId": "account@domain"
},
"createdTime": 1593673041344,
"content": {
"type": "text",
"text": "ボタン",
"postback": "{"
}
}
'''
各jsonとも値等は一部変更してあります
投稿に新しいコメントが追加されましたら通知を送信します。
コメント4
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
ご迷惑をおかけしてしまい、申し訳ございません。
修正が完了し次第、またご連絡させていただきます。
なお、ダブルクォート(")ですが URL エンコードで表示すれば正常に取得することができます。
例) "postback": "{%22id%22:%221234%22,%22num%22:%221593674300974%22}"
お手数をおかけいたしますが、こちらの方法でご利用いただければと思います。
2020.07.09
업데이트 된 답글입니다.
notaro 投稿者
Bot API の仕様としてpostback中のダブルコーテーション「"」はURLエンコードが必須である、という認識でよろしいでしょうか?
加えて2点お教えください。
①エンコードが必要な文字
ダブルコーテーションの他にURLエンコードが必要となる文字はありますでしょうか?(以下のいずれでしょうか)
・ダブルコーテーションのみ
・ほかの文字(記号)もエンコードが必要 ⇒ 該当する文字をお教えください
・postbackの中を全てをURLエンコードする
②修正後の動作
将来的にURLエンコードなしでも動作する修正が行われる認識ですが、修正後も現在の動作は踏襲されるのでしょうか?
(postback内の文字をURLエンコードした状態でもデータの取得は可能でしょうか)
= 修正後の動作イメージ =
・修正による動作: "postback": "{\"data\": \"value\"}" ⇒ callbackは"{\"data\": \"value\"}"を受け取る
・現行動作の踏襲: "postback": "{%22data%22: %22value%22}" ⇒ callbackは"{\"data\": \"value\"}"を受け取る
2020.07.09
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
1-
エスケープするため、エンコードが必要な文字は (") (/) (\) になります。
2-
修正後も URL エンコードでの文字表記をご利用いただけます。
(\") (%22) の両方ともご利用いただけるように修正を予定しております。
2020.07.14
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
長らくご不便をおかけしてしまい、大変申し訳ございませんでした。
お手数をおかけいたしますが、動作をお確かめください。
2021.02.15
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。