![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2008
Сообщений: 5
|
Доброго времени суток!
К сожалению в поиске по форуму ничего не нашел и в гугле тоже. Но подозреваю, что этот вопрос уже решен. Как получить ID юзера в facebook, который кидает инвайт другу на приложение? |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
кстати тоже немного копал в эту сторону (не очень глубоко). Не нашёл и забил
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 5
|
Тут - http://developers.facebook.com/docs/...logs/requests/, походу можно получить список запросов от приложений, но вытащить не получается, возвращает постоянно пустой массив - https://graph.facebook.com/me/apprequests?.... :
|
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
если вдруг будешь разбираться и разберёшься, запости тут ок?
просто мне сейчас не горит и нет времени (но в ближайшем будущем может понадобится), но зато потом буду знать где посмотреть ![]() |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 5
|
Буду разбираться, очень надо.
Потом отпишу тут Добавлено через 28 часов 1 минуту Приветствую! Разобрался. Надеюсь в ближайшем будущем появится более простой способ, но пока буду пользоваться этим ![]() Когда юзер кидает приглашение своему другу и когда друг нажимает на принять, его кидает на страничку приложения и в строку запроса добавляется параметр "request_ids" К примеру: http://apps.facebook.com/[имя пр...st_ids=1111111 С помощью этого request_ids я и получу айди юзера приславшего этот запрос. С помощью запроса к АПИ можно получить весь список активных запросов к конкретному юзеру фейсбука, но для этого нужен access_token от данного приложения. Есть еще момент, когда одному юзеру накидали сразу несколько запросов на одно приложение, тогда на глобусике оповещений появляется ссылка которая передает сразу несколько айди запросов. Пример: http://apps.facebook.com/[имя пр..._t=app_request Как тогда определить правильно кто же будет рефералом и кто же будет получать бонус? Я решил, что в данном случае буду смотреть сначала весь список запросов и брать самый первый, так я назначу рефералом того, кто первым кинул запрос данному юзеру. В моем случае, я получаю access_token и request_ids через flashVars. Привожу код из своего приложения. // Запрос к серверу для определения статуса юзера ServerAPI.Query("user.getInfo", function (sData:Object):void { if(sData.response.exists!="1") { // если юзер зашел первый раз isNewUser=true; if(iFlashVars.request_ids=="empty") { // если юзер без рефералов, то просто регестрируем его на сервере и запускаем приложение ServerAPI.Query("user.register", function (sData:Object):void { userReady(); // запуск приложения }, "avatar=1", "refid=0"); return; } // если же мы получили один или несколько рефералов // получаем от ФБ(facebook) список запросов var urlLoader:URLLoader=new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, function(ev:Event):void { var loader:URLLoader = URLLoader(ev.target); var reqObj:Object=JSON.decode(loader.data); // преобразуем строку формата JSON в объект var refId:String="0"; var pushIdsText:String=String(iFlashVars.request_ids); var pushIdsArr:Array=pushIdsText.split(","); var needFind:Boolean=false; var targetReqId:String=""; if(pushIdsArr.length==1) { // если в параметре [request_ids] получили всего один запрос needFind=true; // значит нам нужно найти конкретного юзера из всего списка запросов targetReqId=pushIdsArr[0]; } for(var i:Number=0; i<reqObj.data.length; i++) { // смотрим список запросов if(needFind) { // если нужно найти конкретного юзера if(reqObj.data[i].id==targetReqId && reqObj.data[i].application.id==APP_ID) { // находим наш запрос и если он относится к нашему приложению refId=reqObj.data[i].from.id; // тогда назначаем этого юзера как реферала break; } continue; } if(reqObj.data[i].application.id==APP_ID) { // если нужно найти юзера, который кинул запрос самым первым, ищем первый запрос относящийся к нашему приложению refId=reqObj.data[i].from.id; // назначаем реферала break; } } // регестрируем нового юзера и передаем айди реферала ServerAPI.Query("user.register", function (sData:Object):void { userReady(); // запускаем приложение }, "avatar=1", "refid="+refId); }); var url:String="https://graph.facebook.com/"+iStorage.fb.me.id+"/apprequests?"+iFlashVars.app_token; // формируем строку, для получения списка запросов urlLoader.load(new URLRequest(url)); // отправляем запрос } else { // если юзер уже не первый раз заходит в приложение и он уже есть в базе сервера ServerAPI.Query("user.getMe", function(sData:Object):void { if(sData.response.tutorialComplete=="0") isNewUser=true; else isNewUser=false; userReady(); // запускаем приложение }); } }); |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 50
|
Не подскажете, как Вы делаете это ?
С помощью этого request_ids я и получу айди юзера приславшего этот запрос. Что-то вроде этого (но именно это не работает): Добавлено через 24 часа 6 минут Всем спасибо. Решение найдено. Последний раз редактировалось nauroman; 11.09.2012 в 11:12. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|