FlexMessage 버튼에 넣는 LIFF 링크로 조심하십시오.

이전에 LINE bot에서 Flex Message의 버튼에 파라미터를 붙인 LIFF를 취급하는 이야기을 게시했습니다. 수수께끼의 에러가 나와 버려 해결할 수 없고 모야모야한 기분으로 쓰고 있어, 어쨌든 읽어 준 누군가가 가르쳐 준다고 생각하고 있었습니다. 그러자 기적적으로 코멘트를 받았으므로 재차 검증해 보았습니다.

받은 코멘트에 따르면



아무래도 LIFF에 파라미터를 건네준 링크를 넣은 버튼을 사용해도 보통으로 LIFF는 기동하는 것 같습니다. 그리고 Flex Message의 JSON도 여기의 시뮬레이터로 작성한 것으로, 자신이 만들었을 때와 완전히 같은 방법이었습니다. 그래서, Flex Message의 만드는 방법에 문제가 있는 것은 아닌 것 같습니다. 그렇다면 원인은 URL에 있습니다.

URL을 살펴 보았습니다.



이번에는 버튼에 넣은 URL을 확인했습니다. 일단 코멘트로 받은 URL을 자신의 LIFF에 맞추어 변경하면 문제 없게 움직였습니다.


원인을 알았다



그리고 여기에서 오류 원인을 알았습니다. 원인은 파라미터에 일본어를 포함한 URL을 사용하고 있었기 때문입니다. Template Message로 신경쓰지 않고 하고 있었던 것이, Flex Message라고 에러가 되고 있었던 것입니다. 그래서 URI 인코딩을 사용하여 【liff_URL】/URLエンコードした日本語의 형태로 URL을 생성하면 LIFF는 문제없이 뛰어 올랐습니다.


정리하면 ...



이번에 파라미터 첨부의 LIFF가 일어나지 않았던 원인은 FlexMessage의 사양의 문제가 아니고, LIFF의 링크에 일본어가 포함되어 있었기 때문이었습니다. 그래서 Flex Message에서 일본어의 파라미터를 포함한 링크를 취급할 때에는 URI 인코딩을 사용하면 에러 없이 사용할 수 있습니다. (아마도 전문 엔지니어의 사람이라면 URI 인코딩은 당연한 일이지만,,,)

좋은 웹페이지 즐겨찾기