Bot

”&”や”<”が投入できない

山口護夫

2018.02.22既読 4126

投稿内容は全体に公開されます。 

アカウント名やドメイン名、 ConsumerKey などの非公開情報は記入しないでください。

LINE WORKSからトークBotに送信する文字のうち、”&”や”<”が含まれるメッセージ

を送信すると、Botに到達する前に処理されてしまい、返答が返ってこない事象が

発生します。

 

LINEの”改ざん有無確認プロセスで暗号化処理が動く際に、特定の文字(&、<)の時だけ、

違った暗号処理結果が出力されてしまっているのではないかと見受けられます。

解消できますでしょうか。また、他にも同様な文字列があれば、合わせて解消したいです。

コメント15

  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    弊社テスト環境で確認したところ、正しくjson encodingされて送信されているようです。
    今一度、受信したメッセージをご確認いただけないでしょうか。

    例) 送信メッセージ「^><^&&!"&"<」 の場合
    {  
      "type":"message",
      "source":{  
         "accountId":"xxx"
      },
      "createdTime":xxxxxx,
      "content":{  
         "type":"text",
         "text":"^ \u003e\u003c ^ \u0026\u0026 ! ” \u0026 ” \u003c"
      }
    }

    2018.02.23

    0
  • 업데이트 된 답글입니다.

    山口護夫 投稿者

    情報が不足しており申し訳ございません。
    X-WORKS-Signatureのヘッダー情報が、Botで受信した際に一致しないため、
    改ざんされているかのように判定してしまっている状態です。

    これらの文字以外は、基本的には正常に稼働しています。

    2018.02.23

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    弊社テスト環境で同様のメッセージを送信して試した限りでは、正常に動作しているように見受けられます。
    お手数ですが、大まかなメッセージ送信時間と送信した bot no. をお教えいただけますでしょうか。

    2018.02.28

    0
  • 업데이트 된 답글입니다.

    山口護夫 投稿者

    こちらになります。

    2018/2/28 10:43
    Bot No.2089
    -------
    先ほど別々に、「&」「<」「aaaaaa」と3回送信し、
    「aaaaaa」だけ返信が返ってきました。

    2018.02.28

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    情報ありがとうございます。御社サーバ(メッセージ受信callback)へのリクエスト送信内容を確認したログ情報、下記の通りです。(一部 ”*” でマスクさせていただいております。)
    署名検証エラーとなっている場合、検証ロジックに誤りがあるかと思われますので、今一度ご確認お願いできますでしょうか。

    ■「&」を送付いただいた際のログ情報
    [2018-02-28 10:43:**.******] X-WORKS-Signature:MMEbr5JPryeJ14aIagfED/Kv0FVowB2NxEC0/sw+SEI= Request:"{\"type\":\"message\",\"source\":{\"accountId\":\"y********.****o@*********-***\"},\"createdTime\":*5****2*****4,\"content\":{\"type\":\"text\",\"text\":\"\\u0026\"}}"

    2018.03.01

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    ■「<」を送付いただいた際のログ情報
    [2018-02-28 10:43:**.******] X-WORKS-Signature:C+syIRlQARJdjLtettpt2EstFweaLJzCmZLhouOpqu8= X-WORKS-BotNo:2089 Request:"{\"type\":\"message\",\"source\":{\"accountId\":\"y********.****o@*********-***\"},\"createdTime\":*5****2*****2,\"content\":{\"type\":\"text\",\"text\":\"\\u003c\"}}"

    ■「​aaaaaa」を送付いただいた際のログ情報
    [2018-02-28 10:43:**.******] X-WORKS-Signature:TbrjdYdA1BvLiu+rs6t302fHGblK9QieiTJBX1Ppf9k= X-WORKS-BotNo:2089 Request:"{\"type\":\"message\",\"source\":{\"accountId\":\"y********.****o@*********-***\"},\"createdTime\":*5****2*****8,\"content\":{\"type\":\"text\",\"text\":\"aaaaaa\"}}"

    2018.03.01

    0
  • 업데이트 된 답글입니다.

    山口護夫 投稿者

    ありがとうございます。

    &など一部の文字が、Unicodeエスケープシーケンスされていることが誤動作を起こしている原因でした。
    どの文字がUnicodeエスケープシーケンスされているのかがこちらでは判別できないので、
    まず、Unicodeエスケープシーケンスをしないようにしていただくことは可能でしょうか。

    それが難しいようであれば、Unicodeエスケープシーケンスを実施している文字のリストを
    ドキュメント上に記載していただけないでしょうか?

    また、Unicodeエスケープシーケンスを行っている対象文字が変更されるような仕様変更が今後仮にあった場合
    こちらでは対応しきれないので、jsonエンコーダーおよびデコーダーのAPIをご提供いただけないでしょうか。

    2018.03.01

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    原因はUnicodeエスケープだったとのこと、特定できて何よりです。
    JSONの仕様としてUnicodeエスケープが可能となっております。RFC 7159を参照ください:https://tools.ietf.org/html/rfc7159.html#section-7
    そのため、弊社からエンコーダー/デコーダーの提供予定はございません。ご了承ください。
    JSON仕様に対応されているソースコードあるいはライブラリのご利用をお願いできますでしょうか。

    2018.03.01

    0
  • 업데이트 된 답글입니다.

    ご回答ありがとうございます。
    このドキュメント内でどのあたりに、エスケープ対象の文字が分かる記載がありますでしょうか。
    どの文字がその対象かを知りたいため、ご教示いただけますか。

    2018.03.14

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    RFC 7159中では「7. Strings」に記述がございますのでご参照くださいませ。
    https://tools.ietf.org/html/rfc7159.html#section-7

    2018.03.14

    0
  • 업데이트 된 답글입니다.

    ご連絡ありがとうございます。

    提示いただいた箇所を読んでみたのですが、
    エスケープしなければならない文字は(U+0000からU+001F)で、
    それ以外は任意と書かれています。

    今回、問題になっている文字は以下の通りで、

    - & => U+0026
    - < => U+003C

    これらの文字のエスケープは任意と読み取れますが、
    この認識は間違っておりますでしょうか。

    2018.04.16

    0
  • 업데이트 된 답글입니다.

    RFCでは任意になっているのでBOT側としてはどれをエスケープするべきかがわからないいため、
    任意のうちのどれがLINE WORKS内ではエスケープ必須になってるかをすべて教えてください。

    2018.04.24

    0
  • 업데이트 된 답글입니다.

    こちらの件ですが、いつ頃までにご回答がいただけるかを教えていただけますか。
    よろしくお願いいたします。

    2018.05.25

    0
  • 업데이트 된 답글입니다.

    こちら、ご回答いただけないでしょうか……。

    こちらの質問は「『&』など、RFCではエスケープ任意扱いになっている文字列が、LINE WORKS内でエスケープ必須になっているようなので、LINE WORKSにおいてどの文字がエスケープ必須文字なのかを教えてください」です。

    2018.06.21

    0
  • 업데이트 된 답글입니다.

    LINE WORKS 公式アカウント

    ご連絡が遅くなり失礼いたしました。こちらにつきまして全対象文字をお伝えするのは難しいため、
    任意の各文字につきましてもエスケープ処理を行うようお願いできますでしょうか。

    2018.06.22

    0
前の投稿 パートナーAPI check-domain-validity が 500 エラーとなる
次の投稿Basic認証がかかっているサイトをiPadのLINEWORKSアプリで開くとID/PASSの入力画面が表示されずずっ
リスト

まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。