Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.04.2011, 06:57
Gatz вне форума Посмотреть профиль Отправить личное сообщение для Gatz Найти все сообщения от Gatz
  № 1  
Ответить с цитированием
Gatz

Регистрация: Nov 2008
Сообщений: 5
Question ID пригласившего

Доброго времени суток!
К сожалению в поиске по форуму ничего не нашел и в гугле тоже.
Но подозреваю, что этот вопрос уже решен.

Как получить ID юзера в facebook, который кидает инвайт другу на приложение?

Старый 12.04.2011, 12:02
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 2  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
кстати тоже немного копал в эту сторону (не очень глубоко). Не нашёл и забил
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 12.04.2011, 18:31
Gatz вне форума Посмотреть профиль Отправить личное сообщение для Gatz Найти все сообщения от Gatz
  № 3  
Ответить с цитированием
Gatz

Регистрация: Nov 2008
Сообщений: 5
Тут - http://developers.facebook.com/docs/...logs/requests/, походу можно получить список запросов от приложений, но вытащить не получается, возвращает постоянно пустой массив - https://graph.facebook.com/me/apprequests?.... :
Код:
{
   "data": [
      
   ]
}

Старый 12.04.2011, 18:50
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 4  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
если вдруг будешь разбираться и разберёшься, запости тут ок? просто мне сейчас не горит и нет времени (но в ближайшем будущем может понадобится), но зато потом буду знать где посмотреть
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 13.04.2011, 01:01
Gatz вне форума Посмотреть профиль Отправить личное сообщение для Gatz Найти все сообщения от Gatz
  № 5  
Ответить с цитированием
Gatz

Регистрация: 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.

Привожу код из своего приложения.


Код AS3:
					// Запрос к серверу для определения статуса юзера
					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(); // запускаем приложение
							});
						}
					});

Старый 10.09.2012, 11:05
nauroman вне форума Посмотреть профиль Отправить личное сообщение для nauroman Найти все сообщения от nauroman
  № 6  
Ответить с цитированием
nauroman
 
Аватар для nauroman

Регистрация: Sep 2005
Сообщений: 50
Не подскажете, как Вы делаете это ?

С помощью этого request_ids я и получу айди юзера приславшего этот запрос.

Что-то вроде этого (но именно это не работает):

Код AS3:
Facebook.api("/" + request_ids, onGetReferrerByRequestId);
Добавлено через 24 часа 6 минут
Всем спасибо. Решение найдено.

Код AS3:
Facebook.api('/' + request_ids, onGetReferrerByRequestId, {access_token:token}, 'GET');


Последний раз редактировалось nauroman; 11.09.2012 в 11:12.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 12:35.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.