LINE Messaging API を試してみた / Push Message で 絵文字を送る - 大人の自由研究

大人の自由研究 ホーム » PC » LINE Messaging API を試してみた / Push Message で 絵文字を送る

LINE Messaging API を試してみた / Push Message で 絵文字を送る


 LINEの楽しい部分って、スタンプや、絵文字が豊富にある事だと思う。
 その絵文字を Push Message で送りたいと思ったのね。

 探し方悪いのか、情報が見つからなかったーー
 絵文字がコピペ出来るという事は、なんらかも文字コードがある訳で、その文字コードを指定すれば、送れそうな気がした。

 Reply Message で絵文字の内容を見てみたのですが。。。
 "text":"\uDBC0\uDC23\uDBC0\uDC23"
 って Unicode が入るケースと
 "text":"(book)(ruler)(gift)"
 と、文字に変換されてしまうケースがある。

 恐らく、後者は LINE が独自に定義している絵文字と思われる。

 画面で見るとこんな感じで、
 
 前者の方は、そのままリプライで返信して絵文字まで表示される。という事は Unicode で "\uDBC0\uDC23" が 顔かw

 で、問題は後者の方で、当然、"(book)(ruler)(gift)" で送信しても、そのまま表示されるだけである

 多少面倒だけど、絵文字コードを調べる方法
 PCのLINEソフトで対象の絵文字をコピーする
 hidemaruなどのUTF-8が使えるエディタにペーストする
 􀐂􀇳book􏿿􀐂􀇭ruler􏿿􀐂􀇵gift􏿿
 こんな感じで□になってしまいますが、気にせずに保存。
 次にバイナリエディターでそのファイルを開き、バイナリデータをコピー

 また、https://www.marbacka.net/msearch/tool.php#str2enc のサイトで先ほどコピーした値をUTF-8に変換すればできそう。


$emoji = hex2bin( "F4809082F48087B3626F6F6BF48FBFBFF4809082F48087AD72756C6572F48FBFBFF4809082F48087B567696674F48FBFBF");

$textMessageBuilder = new \LINE\LINEBot\MessageBuilder\TextMessageBuilder( $emoji );


 ちょっと長いですが、↑これでLINE絵文字を送る事が出来る。

 使いたいものをピックアップして調べておけば、良いかも

$emoji['office' ] = hex2bin("F4808882F48085B76F6666696365F48FBFBF");
$emoji['calendar'] = hex2bin("F4809082F48087A763616C656E646172F48FBFBF");
$emoji['time1' ] = hex2bin("F4809482F480878AE69982E99693F48FBFBF");
$emoji['time2' ] = hex2bin("F4809482F4808781E69982E99693F48FBFBF");


 で、さらに発見した事があったのね

 $emoji['time2' ] = hex2bin("F4809482F4808781E69982E99693F48FBFBF");
 このボールドの部分。「時計」って文字なんだけど、これ、省略が出来るみたいで

 $emoji['time2' ] = hex2bin("F4809482F4808781F48FBFBF");
 これでも同じ絵文字が表示されるようだ。


$emoji['office' ] = hex2bin("F4808882F48085B7F48FBFBF");
$emoji['calendar'] = hex2bin("F4809082F48087A7F48FBFBF");
$emoji['time1' ] = hex2bin("F4809482F480878AF48FBFBF");
$emoji['time2' ] = hex2bin("F4809482F4808781F48FBFBF");


 長さも揃って、定義部がちょっとスッキリしましたw


 こちら、Unicode Character 'CYCLONE' (U+1F300) です

$emoji['test1' ] = mb_convert_encoding( hex2bin( "0001F300"), 'UTF-8', 'UTF-32');
$emoji['test2' ] = json_decode('["\uD83C\uDF00"]', true)[0];
$emoji['test3' ] = hex2bin("F09F8C80");

 3共に同じ渦巻きですw



 ・unicode(v9.0)が纏められているページ
  → http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/index.html

 ・Unicode文字変換ツール
  → https://www.marbacka.net/msearch/tool.php#str2enc

 ・こちらも変換ツール、サロゲートペアの変換ツールがオススメ
  → http://so-zou.jp/software/tech/programming/tech/character-encoding/#code-point

関連記事
スポンサーサイト
コメント
非公開コメント

トラックバック

http://ukkey3.blog33.fc2.com/tb.php/684-5041f440