LINE Beacon을 사용해 보았습니다.

10184 단어 linebotbeaconLine

목적



LINE BEACON을 사용하여 LINE 토크룸에 알림을 건너뛰고 싶습니다.

최종 목표



LINE BEACON에 가까워지면, 「도착!」라고 통지된다.



목표 달성까지의 과정


  • LINE BOT 만들기
  • LINE BOT과 LINE Beacon의 연계
  • 비콘 이벤트를 처리하는 프로그램 구현

  • 절차



    1. LINE BOT 만들기


  • LINE Business 계정 만들기. 「LINE BUSINESS CENTER」에서 화면의 순서에 따라 신규 등록을 실시합니다.
    htps : // 부시넷 s. 네. 메 / 자 / 세 r ゔ 세 s / t
  • Messaging API 신청
    계정 목록의 'Messaging API' 링크에서 화면의 안내에 따라 사용 신청을 합니다.


  • 「LINE@MANAGER」로 BOT 작성합니다.
    관리 화면의 「BOT 설정」에서 Webhook 송신을 「이용한다」로 변경합니다.
  • "LINE Developers"에 로그인



  • "계정 이름> 채널 이름/채널 기본 설정"에서 WebhookURL 설정



    2. LINE BOT과 LINE Beacon의 연계


  • LINE@MANAGER에 로그인


  • 대상 계정을 선택하고 LINE beacon을 클릭하십시오


  • "비콘 단말기와 BOT의 연계"를 클릭하십시오


  • LINE beacon의 HWID와 비밀번호 입력

  • 주의: 하나의 봇이 여러 개의 비콘과 함께 작동할 수 있습니다. 그러나 하나의 비콘은 여러 봇과 함께 사용할 수 없습니다.

    3. 비콘 이벤트를 처리하는 프로그램 구현


  • LINE BEACON에서 WebhookURL로 보내지는 JSON 형식

  • BEACON 경유 이벤트
    {
        "events": [
            {
                "type": "beacon",
                "replyToken": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                "source": {
                    "userId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                    "type": "user"
                },
                "timestamp": 1506685872663,
                "beacon": {
                    "hwid": "XXXXXXXXXX",
                    "type": "enter"
                }
            }
        ]
    }
    
  • JSON에 대한 자세한 설명



  • 필드
    유형
    Description


    유형
    문자열
    beacon

    replyToken
    문자열
    이 이벤트에 회신하는 데 사용되는 토큰

    beacon.hwid
    문자열
    발견한 비콘 장치의 하드웨어 ID

    beacon.type
    문자열
    비콘 이벤트의 종류

    beacon.dm
    문자열
    (OPTIONAL)


  • beacon.type이란



  • beacon.type
    Description


    enter
    비콘 기기의 수신권 내에 들어갔다.

    leave
    비콘 장치의 수신권 내에서 나왔다.

    banner
    비콘 배너를 탭했습니다.


  • 비콘 배너란



  • 샘플 프로그램



    callback.php
    <?php
    $accessToken = 'アクセストークン';
    $jsonString = file_get_contents('php://input');
    error_log($jsonString);
    $jsonObj = json_decode($jsonString);
    $message = $jsonObj->{"events"}[0]->{"message"};
    $replyToken = $jsonObj->{"events"}[0]->{"replyToken"};
    $beacon = $jsonObj->{"events"}[0]->{"beacon"};
    if (strpos($beacon->{"hwid"},'XXXXXXXXXX') !== false) {
    
      $messageData = [
          'type' => 'text',
          'text' => '到着!'
      ];
    } else {
        $messageData = [
            'type' => 'text',
            'text' => $message->{"text"}
        ];
    }
    $response = [
        'replyToken' => $replyToken,
        'messages' => [$messageData]
    ];
    error_log(json_encode($response));
    $ch = curl_init('https://api.line.me/v2/bot/message/reply');
    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($response));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json; charser=UTF-8',
        'Authorization: Bearer ' . $accessToken
    ));
    $result = curl_exec($ch);
    error_log($result);
    curl_close($ch);
    

    결과



    LINE BEACON에 가까워지면, 「도착!」이라고 통지된다!

    좋은 웹페이지 즐겨찾기