Message Actionのpostbackの挙動について
今回、APIのバージョンアップ対応を進めております。
その際、下記のドキュメントを参考に開発しているのですが、
Message Actionのpostbackの挙動について、ご教示ください。
https://developers.worksmobile.com/jp/document/1005050?lang=ja
確認したいこと:
1:Message ActionのpostbackのデータでJSON形式の文字列を扱う場合は、
json.stringifyなどを使って文字列変換せず、エスケープ処理を使って送るのが正しいでしょうか?
経緯:
postbackは、string値を許容するということで、
JSONデータをJSON形式の文字列変換し送信したところ、
postbackされたデータが欠落しておりました。
ダブルクォーテーションをエスケープすると期待していた通りに返却されます。
その際、下記のドキュメントを参考に開発しているのですが、
Message Actionのpostbackの挙動について、ご教示ください。
https://developers.worksmobile.com/jp/document/1005050?lang=ja
確認したいこと:
1:Message ActionのpostbackのデータでJSON形式の文字列を扱う場合は、
json.stringifyなどを使って文字列変換せず、エスケープ処理を使って送るのが正しいでしょうか?
経緯:
postbackは、string値を許容するということで、
JSONデータをJSON形式の文字列変換し送信したところ、
postbackされたデータが欠落しておりました。
送信元データ:
"postback":"{"hoge_key1":hoge_value,"hoge_key2":"hoge_value","hoge_key3":"hoge_value"}"
json.stringifyにて、変換後データ:
"postback":"{\"hoge_key1\":hoge_value,\"hoge_key2\":\"hoge_value\",\"hoge_key3\":\"hoge_value\"}"
postbackで受けとったデータ:
{"type":"text","text":"hoge","postback":"{"}
*postbackが欠落してる。
そこで、json.stringifyを利用せず、ダブルクォーテーションをエスケープすると期待していた通りに返却されます。
送信元データをエスケープ処理したデータ:
"postback":"{%22hoge_key1%22:hoge_value,%22hoge_key2%22:%22hoge_value%22,%22hoge_key3%22:%22hoge_value%22}
エスケープ処理した場合にpostbackで受けとったデータ:
{"type":"text","text":"hoge","postback":"{\"hoge_key1\":hoge_value,\"hoge_key2\":\"hoge_value\",\"hoge_key3\":\"hoge_value\"}"}
こちらjson.stringifyでダブルクォーテーションをエスケープしたバックスラッシュがある場合によって、
postbackで受けるデータが欠落しているのでは?と想定しております。今回はバックスラッシュだけでしたが、そもそも、他の特殊文字での挙動などが不明のため、
postbackでJSON形式のデータを正しく送信する方法を確認させていただきました。
投稿に新しいコメントが追加されましたら通知を送信します。
コメント2
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
しかし、確認いたしましたところ現在 backslash (\) でのエスケープが利用できなくなっておりました。
ご迷惑をおかけしてしまい、申し訳ございません。
修正が完了し次第、またご連絡させていただきます。
お手数をおかけいたしますが、URL エンコードでのエスケープをご利用いただければと思います。
2020.07.09
업데이트 된 답글입니다.
LINE WORKS 公式アカウント
長らくご不便をおかけしてしまい、大変申し訳ございませんでした。
お手数をおかけいたしますが、動作をお確かめください。
2021.02.15
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。