2012-04-25 4 views
4

У меня есть сайт, на котором я использую API Facebook, чтобы пользователи могли приглашать своих друзей на мой сайт. Эти друзья получат приглашение на участие в Facebook, и как только они нажмут и примут его, он откроет страницу моего сайта в iFrame (внутри Facebook).Facebook canvas url с параметрами?

Все в порядке, но я хотел бы добавить ссылочный идентификатор к URL-адресу. Поэтому я могу сказать, от кого они получили приглашение.

Можно ли добавить (динамические) параметры на холст URL?

Я не смог узнать, как это сделать.

(Я использую библиотеку JS).

ответ

3

я в состоянии передать несколько Params на мою страницу холст. Не совсем уверен, почему это не работает для вас или для @JonCanning. Я могу успешно перенаправить на https://apps.facebook.com/MY-APP?param1=x&param2=y&param3=z и загрузить их в код, загруженный в iframe.

Вы не можете манипулировать URL-адресами запроса, если используете apprequests для приглашений, но не знаете, как вы планируете манипулировать URL-адресом запроса. Это механизм стены?

Но, если вы используете apprequests для приглашений - вы можете передать необязательный параметр «data». Это может быть произвольная JSON или простая строка. Когда получатель щелкает через приглашение, вам будет предоставлен параметр «request_id» в перенаправителе запроса из Facebook. например Http: ВАШЕ-INVITE-Redirect-URL request_ids = REQUEST_ID?. Если нескольким приглашениям из одного и того же приложения были отправлены пользователю, вы получите request_ids как список, разделенный запятыми. Вы можете выполнить обратный вызов на конечную точку api facebook graph для запросов и вернуть всю информацию для запросов - включая переданный вами параметр «данные». Это может работать лучше для вас, поскольку вы ввели все данные в самом запросе.

Более подробная информация о диалогах здесь: https://developers.facebook.com/docs/reference/dialogs/requests/

1

Один параметр, передаваемый в Ваши приложения URL передается на IFRAME

http://apps.facebook.com/app_name/?param=hello

+0

Есть ли у вас какие-либо документы для этого? Facebook не пропускает параметры. – Joe

+0

Нет, только через мое собственное тестирование, и он кажется, что работает только для одного параметра, поэтому я исправлю свой ответ –

+0

btw app_data get param делает это – Joe

0

Чтобы добавить @ iyerrag Ответит, чтобы захватить параметры данных из вашего обработчика холста, вы должны перезвонить в facebook граф API. Вызов принимает один из request_ids, переданный в HTTP-запросе, а также токен доступа. Я смог использовать токен доступа нашего приложения (генерировал что-то вроде этого Creating App Token).

Возвращенный документ JSON содержит значение, которое вы передали в параметре данных в ключевых «данных».

Вот суть, в Python:

requestIDStr = self.request.get('request_ids','') 
requestIDs = requestIDStr.split(',') 
requestID = requestIDs[0] 

if requestID: 
    url = """https://graph.facebook.com/{}?access_token={}""".format(requestID, fbAccessToken) 
    try: 
     response = urllib2.urlopen(url) 
     responseDoc = response.read() 
     jsonResponse = json.loads(responseDoc) 
     dataParam = jsonResponse['data'] 
    except Exception as e: logging.warning('unable to retrieve data param: {}'.format(e)) 
Смежные вопросы