【PHP】LINE Messaging API의 이모티콘(emoticon) 송신 방법
以下の絵文字を含むテキストメッセージを送信できます。
・ Unicodeで定義された絵文字
・ LINEが独自に定義した絵文字。LINE独自の絵文字のUnicodeコードポイント表を参照してください。
라고 하는 내용으로 지금 이치 송신의 방법을 모르기 때문에, 송신 방법을 비망록으로서 기재하려고 생각합니다.
LINE Messaging API에서 사용할 수 있는 이모티콘(emoticon)
인용구 : 공식 문서, LINE 고유의 이모티콘 유니 코드 코드 포인트 표
PHP로 전송하는 방법
조사한 결과, line-bot-sdk-php 에 정보가 있었으므로,
시도한 결과 푸시 메시지에 이모티콘 (emoticon)을 보낼 수있었습니다.
// 0xを抜いた数字の部分
$code = '100078';
// 16進エンコードされたバイナリ文字列をデコード
$bin = hex2bin(str_repeat('0', 8 - strlen($code)) . $code);
// UTF8へエンコード
$emoticon = mb_convert_encoding($bin, 'UTF-8', 'UTF-32BE');
//配列などに格納して使う
$text[] = array("type" => "text","text" => $emoticon);
푸시 메시지 결과
※ 숫자의 부분을 텍스트로 보내, 이모티콘을 방금의 처리로 회신하는 구조를 만들어 보았습니다.
아래가 그 이미지가 됩니다.
회신 처리의 소스 공개(참고 정도)
문자만 픽업하고 회신하므로,
스탬프 라든지 읽을 수 있습니다. . .
reply.php
$httpRequestBody = file_get_contents('php://input');
$jsonObject = json_decode($httpRequestBody,true);
$replyToken = $jsonObject["events"][0]["replyToken"];
//X-Line-Signature Request Headerに入っているSignature検証で、LINE Platformから送信確認
$hash = hash_hmac('sha256', $httpRequestBody, $this->ChannelSecret, true);
$signature = base64_encode($hash);
// 拡張ヘッダからAPI側から設定されているSignatureを取得
$compSig = $_SERVER['HTTP_X_LINE_SIGNATURE'];
// LINEからの送信であれば実行
if ($signature == $compSig) {
$topType = $jsonObject["events"][0]["type"];// follow,unfollow,message イベントタイプ
$userId = $jsonObject["events"][0]["source"]["userId"]; //LINEユーザID
$groupId = $jsonObject["events"][0]["source"]["groupId"]; //LINEユーザID
//メッセージ受信の処理
if($topType == "message"){
$type = $jsonObject["events"][0]["message"]["type"];
$text = $jsonObject["events"][0]["message"]["text"];
//テキスト受信
if($type =="text"){
//絵文字を返信する処理
$code = $text;
$bin = hex2bin(str_repeat('0', 8 - strlen($code)) . $code);
$emoticon = mb_convert_encoding($bin, 'UTF-8', 'UTF-32BE');
$textArr[] = array("type" => "text","text" => $emoticon);
//テキスト受信
}
}//メッセージ受信の処理
//返信処理
if(count($textArr) > 0){
$this->ReplyMessage($replyToken,$textArr);
}
}// LINEからの送信であれば実行
/**
* 返信処理
*/
public function ReplyMessage($replyToken,$textArr){
$ChannelAccessToken = チャンネルアクセストークン;
$post["replyToken"] = $replyToken;
$post["messages"] = $textArr;
$url = "https://api.line.me/v2/bot/message/reply";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($post));
curl_setopt($ch,CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charser=UTF-8',
'Authorization: Bearer ' . $ChannelAccessToken
));
$res = curl_exec($ch);
$obj = json_decode($res,true);
curl_close($ch);
}
Reference
이 문제에 관하여(【PHP】LINE Messaging API의 이모티콘(emoticon) 송신 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hisaharu/items/613baad81a4161c3c6c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)