Вопрос:
Привет, когда мое приложение позволяет пользователю приглашать своих друзей, я хотел бы добавить тег отслеживания в поле данных, чтобы, когда кто-то получит это приглашение, я мог получить этот тег отслеживания.
Моя проблема в том, что, как только я передаю тег отслеживания, я не знаю, как его получить, когда пользователь нажимает на запрос приложения.
Мой код для приглашения
FB.ui( { метод: 'apprequests', сообщение: "Вам следует узнать больше об этой потрясающей игре"., данные: UniqTrackIDInvite // случайно сгенерированное число },
и на моей целевой странице, где новый пользователь решает принять мое приложение или нет после нажатия на, я хотел бы иметь способ получить это
Ответ №1:
получение идентификаторов запроса:
if(isset($_REQUEST['request_ids']))
$reqIds = explode(',', $_REQUEST['request_ids']);
вы можете сохранить их в сеансе, чтобы использовать позже
это вызов api:
public function getInvitationData($reqId){
return $facebook->api('/'.$reqId, 'GET', array('access_token'=>$accessToken));
}
поскольку пользователь может быть приглашен более чем одним пользователем, у него может быть несколько приглашений, поэтому создайте цикл. также используйте блок try / catch, поскольку идентификатор запроса, который уже удален, вызовет исключение
foreach($reqIds as $reqId) {
try{
$invite = $application->facebook->getInvitationData($reqId);
$data = explode('.', $invite['data']);
if(sizeof($data) >= 3) list($in, $from, $code)=$data;
// tadaaa
echo $code;
}
}