1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

cometchatの日本語対応について

Posted at

みなさん、cometchatってご存知でしょうか?

cometchatとはチャットAPI&メッセージSDKで、自分のWebサイトに簡単にチャット機能が設置できます。

私はこのcometchat pro(cometchatのもっと柔軟に扱えるサービス)のAPIを使って自分のサイトにチャット機能をつけました。
こちらを元にpython(Django)で実装しています。)
しかし完成後、悲劇が起こります。

  

cometchatで日本語のテキストが送れない。。。。
私のサイトは日本語

サイトがインターナショナルになってしまった訳です。

  

公式ドキュメントには「日本語も対応しているよ!」と書いてありますが、
実際日本語でメッセージ送ろうとすると以下のエラーが出ます。

UnicodeEncodeError: 'latin-1' codec can't encode characters 
in position 90-92: Body ('あああ') is not valid Latin-1. 
Use body.encode('utf-8') if you want to send it encoded in UTF-8.

Use body.encode('utf-8')←上記のエラーでこれ試せばいいって教えてくれてますが、
試すとERR_BAD_REQUESTが返ってきます。

{"error":{"code":"ERR_BAD_REQUEST","details":{"receiver":["The
 receiver field is required."],"receiverType":["The receiver 
type field is required."]},"message":"Failed to validate the 
data sent with the request."}}

解決方法

メッセージを送る時。
byteにして16進数文字列に変換する。

text = "送りたいメッセージ"
text.encode().hex() 
# 'e98081e3828ae3819fe38184e383a1e38383e382bbe383bce382b8'

メッセージを受け取る時。
16進数文字列をbyteに変換、byteをstrに変換する。

bytes.fromhex(text).decode()
# "送りたいメッセージ"

    
  

※一応公式サイトには日本語も対応していると書いているので、
もしかしたら普通に送っても問題ない可能性があります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?