Как да получите достъп до API на Facebook Graph в Parse Cloud Code?

Трябва да намеря приятели на потребител, който е влязъл с 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?


person Can Poyrazoğlu    schedule 28.10.2014    source източник
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
comment
Буквално използвах този метод около час след като коментирах! Страхотни неща, също работи! Въпреки че потребителите най-вероятно ще бъдат на v2.2 сега :). Освен това, ако някой е озадачен относно authData дори след включване, все още трябваше да извлека() потребителя, за да има действително дефинирано поле authData: s - person Rambatino; 14.11.2014
comment
Това може да е малко късно, но се опитвах да използвам това решение без резултат. Токенът за достъп не се приема и API на графиката връща грешка, че токенът за достъп не е активен. Попаднахте ли на този проблем? - person BarakChamo; 13.01.2015
comment
:/ откъде на първо място получавате токена за достъп. - person fatuhoku; 03.12.2015
comment
@fatuhoku пробвай user.get('authData')['facebook']['access_token']; - person Can Poyrazoğlu; 03.12.2015