2015-08-04 6 views
1

Я отрываю свои волосы отсюда.Facebook login - что я делаю неправильно

У нас есть веб-приложение, размещенное на множестве разных доменов, и у нас есть логин facebook на странице. Это работает просто peachy. Большинство из них запускают наш корневой домен, например newsite.ourplatform.com, и мы повторно используем одно и то же приложение facebook и добавляем новый домен.

У нас был запрос создать новый сайт на другом URL-адресе. Раньше это не было проблемой. Мы создали новое приложение для facebook, добавили приложение в конфигурацию и voila, работали в facebook. (мы этого не делаем так часто, поэтому я потенциально сломал его)

На этот раз. Я установил новый идентификатор приложения и подключил его, но всякий раз, когда я вызываю логин facebook, он аутентифицирует меня, но я получаю бесполезный ответ от facebook.

например. На рабочем месте я называю

FB.api("/me/", function(response){console.log(JSON.stringify(response));}); 

и получить ответ

"{id":"12345678910","email":"[email protected]","first_name":"My Name","gender":"male","last_name":"Myname","link":"https://www.facebook.com/app_scoped_user_id/12345678910/","locale":"en_GB","name":"My Name","timezone":10,"updated_time":"2014-01-19T10:44:20+0000","verified":true} 

но на разбитом участке я делаю то же вызов и получить ответ

{"name":"MyName","id":"12345678910"} 

Который является своего рода хорошо, но мне нужна их электронная почта. Насколько я могу судить, я не прошу никаких разрешений за пределами электронной почты, public_profile и user_friends Из-за того, как работает установка приложения, у нас есть разные приложения, работающие под 2,1, 2,2 и 2,4, и этот новый на 2.4 не Работа. Я не уверен, что это красная селедка, или если у меня неправильно настроенное приложение для facebook.

(редактировать - удалены сайты пострадавших, чтобы защитить невинных)

+2

Вам необходимо перейти в журнал изменений API v2.4. https://developers.facebook.com/docs/apps/changelog#v2_4_changes – CBroe

+0

Вы нашли какое-либо решение для этого? – user3526468

+0

к сожалению нет. придется начинать с нуля, чтобы решить, в чем проблема. – Lachmania

ответ

1

Как @CBroe сказал вам действительно нужно оформить в v2.4 changelog для API. В версии 2.4 API Facebook были введены «декларативные поля». Это означает, что когда вы делаете базовый запрос, например /me, вы получите только небольшое количество информации, например. 'name' и 'id'.

У вас есть два варианта, чтобы получить больше полей:

один вариант

FB.api('/me?fields=first_name,last_name,gender', function(response) { 
    console.log(response) 
}); 

Вариант второй

FB.api('/me', function(response) { 
    console.log(response) 
}, {'fields': 'first_name, last_name, gender'}) 

Это возвращает ответ, который выглядит следующим образом:

{"first_name":"First", "last_name":"Last", "gender":"gender", "id":"ID"} 

Ключ в запросе выше указывает параметр URL fields в вашем запросе и задокументирован в ссылке @CBroe, и я связался выше.

+0

Я просмотрел журнал изменений, но ничего не мог увидеть в стоге сена. Я ошибся, хотя CBroe дал мне ответ RTFM. Мои извинения. – Lachmania

Смежные вопросы