Мне нужно получить друзей пользователя, который вошел в систему через Facebook в моем приложении Parse, внутри облачной функции. Как я могу этого добиться? Я пытался установить facebook-node-sdk
(https://github.com/Thuzi/facebook-node-sdk/), но, несмотря на то, что я скопировал все зависимости в одну и ту же папку, он жалуется на невозможность загрузить пакет, когда я require
его. Я также нашел этот вопрос: Как я могу получить имя пользователя из facebook в облачном коде? но ответ там не работает (FB
не определено). Я могу выполнять необработанные вызовы REST к Graph API с моим токеном доступа, используя Parse.Cloud.httpRequest
, но управление конечными точками, токеном доступа, параметрами и т. д. быстро становится беспорядочным. Каков предпочтительный способ доступа к Facebook Graph API из Parse Cloud Code?
Как получить доступ к Facebook Graph API в Parse Cloud Code?
comment
Вам повезло в этом?
- person Rambatino   schedule 13.11.2014
comment
@Rambatino Я добавил свое решение в качестве ответа.
- person Can Poyrazoğlu   schedule 14.11.2014
Ответы (1)
Я не мог использовать какие-либо библиотеки, поэтому в итоге я использовал простые HTTP-запросы REST. Например, я пытался получить имя пользователя, пол и идентификатор пользователя, я использовал этот код, вручную создав URL-адрес (где у меня была token
переменная токена доступа пользователя:
Parse.Cloud.httpRequest({
url: 'https://graph.facebook.com/v2.1/me?fields=id,gender,name&access_token=' + token,
success: function(httpResponse) {
var responseData = httpResponse.data;
...
где responseData
теперь является объектом JSON с возвращаемыми данными. Это не самое лучшее, что можно сделать, но оно отлично работает для простых задач.
person
Can Poyrazoğlu
schedule
13.11.2014
Я буквально только что использовал этот метод через час после того, как прокомментировал! Отличная штука, тоже работает! Хотя пользователи скорее всего сейчас будут на v2.2 :). Кроме того, если кто-то озадачен authData, даже после включения мне все еще нужно было fetch(), чтобы пользователь действительно имел определенное поле authData: s
- person Rambatino; 14.11.2014
Это может быть немного поздно, но я пытался использовать это решение безрезультатно. Токен доступа не принят, и API графа возвращает ошибку, говорящую о том, что токен доступа не активен. Вы сталкивались с этой проблемой?
- person BarakChamo; 13.01.2015
:/где взять токен доступа в первую очередь.
- person fatuhoku; 03.12.2015
@fatuhoku попробуй
user.get('authData')['facebook']['access_token'];
- person Can Poyrazoğlu; 03.12.2015