LINE @에 친구를 등록한 사람의 출처를 식별 (추적)하는 방법
누구의 기사인가?
개요
다양한 방법은 있지만, 가장 인기있는 방법으로 쿠키를 이용한 추적 방법을 소개합니다.
브라우저에서 쿠키를 먹인 후 맞대고 특정하는 원시적인 기법입니다.
브라우저를 사용하지 않는 FingerPrint 또는 더 멋진 방법이 있으면 꼭 댓글 란 등에서 가르쳐 주셨으면합니다.
OS별 사양 차이
iOS 버전 LINE
iOS 버전 LINE
Android 버전 LINE
iOS 버전과 Android 버전에서 동작이 다르기 때문에 간단한 방식으로는 작동하지 않습니다.
해결 방법으로 URL 쿼리에 openExternalBrowser=1을 붙이면 외부 브라우저를 강제로 사용하고 UA와 쿠키를 처리할 수 있습니다.
방법
1. 쿠키 먹이를 위한 PHP 만들기
SetCookie.php
<?php
$set_id = $_GET['id'];
setcookie('id', $set_id);
//$_SESSION['id'] = $set_id;//SESSIONもセットしておくとよりbetter
//ここらへんでUserAgentやIPとってDBに保管しておくとよりbetter
//LINE友達登録用URLにリダイレクト
$line_friend_url = "https://line.me/R/ti/p/hogehoge";
header("Location:" . $line_friend_url);
2.Cookie 먹이를 위한 PHP의 QR코드 만들기
디자인 QR 코드 생성기 을 사용하면 그것처럼 보입니다.
오. gl 같은 짧은 URL을 통해 더 better.
3.Cookie 취득용 PHP 작성
GetCookie.php
<?php
$get_id = $_COOKIE['id'];
print "君は{$get_id}のフレンズなんだね!";
4.Cookie 취득용 PHP를 LINE에서 밟는다
URL이 보이면 알레이므로 UriTemplateActionBuilder 등을 사용하여 Button으로 링크하면 더 better.
LineBot.php
function do_get_cookie()
{
$url = "https://hoge.com/GetCookie.php?openExternalBrowser=1";//openExternalBrowser=1が重要
$actions = array(
new \LINE\LINEBot\TemplateActionBuilder\UriTemplateActionBuilder("ボタン", $url),
);
$title = " タイトル";
$message = "メッセージ";
$thumbnail = NULL;
$button = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ButtonTemplateBuilder($title, $message, $thumbnail, $actions);
$messageBuilder = new \LINE\LINEBot\MessageBuilder\TemplateMessageBuilder($message, $button);
$response = $this->bot->replyMessage($this->replyToken, $messageBuilder);
}
FAQ
Q. LINE Login 사용하면 좋지 않아?
라고도 생각했습니다만, 심사가 엄격하다고 User에 Login시키는 수고가 번잡하다는 것으로 단념했습니다.
Q.Profile의 pictureUrl을 유니크 키로 하면 좋지 않아?
라고 생각했습니다만, LINE에서 이미지 등록하지 않은 User의 경우 응답 JSON에 포함되지 않는 사양 때문에, 단념했습니다.
Q.UserAgent와 IP라면 충분하지?
라고도 생각했습니다만, 정밀도를 요구하면 역시 쿠키 방식이 좋을까라고 생각해, 단념했습니다.
Reference
이 문제에 관하여(LINE @에 친구를 등록한 사람의 출처를 식별 (추적)하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/unoemon/items/7ecaee7d578a82ca5b65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
$set_id = $_GET['id'];
setcookie('id', $set_id);
//$_SESSION['id'] = $set_id;//SESSIONもセットしておくとよりbetter
//ここらへんでUserAgentやIPとってDBに保管しておくとよりbetter
//LINE友達登録用URLにリダイレクト
$line_friend_url = "https://line.me/R/ti/p/hogehoge";
header("Location:" . $line_friend_url);
<?php
$get_id = $_COOKIE['id'];
print "君は{$get_id}のフレンズなんだね!";
function do_get_cookie()
{
$url = "https://hoge.com/GetCookie.php?openExternalBrowser=1";//openExternalBrowser=1が重要
$actions = array(
new \LINE\LINEBot\TemplateActionBuilder\UriTemplateActionBuilder("ボタン", $url),
);
$title = " タイトル";
$message = "メッセージ";
$thumbnail = NULL;
$button = new \LINE\LINEBot\MessageBuilder\TemplateBuilder\ButtonTemplateBuilder($title, $message, $thumbnail, $actions);
$messageBuilder = new \LINE\LINEBot\MessageBuilder\TemplateMessageBuilder($message, $button);
$response = $this->bot->replyMessage($this->replyToken, $messageBuilder);
}
Q. LINE Login 사용하면 좋지 않아?
라고도 생각했습니다만, 심사가 엄격하다고 User에 Login시키는 수고가 번잡하다는 것으로 단념했습니다.
Q.Profile의 pictureUrl을 유니크 키로 하면 좋지 않아?
라고 생각했습니다만, LINE에서 이미지 등록하지 않은 User의 경우 응답 JSON에 포함되지 않는 사양 때문에, 단념했습니다.
Q.UserAgent와 IP라면 충분하지?
라고도 생각했습니다만, 정밀도를 요구하면 역시 쿠키 방식이 좋을까라고 생각해, 단념했습니다.
Reference
이 문제에 관하여(LINE @에 친구를 등록한 사람의 출처를 식별 (추적)하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/unoemon/items/7ecaee7d578a82ca5b65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)