2016-08-02 2 views
0

Итак, я сделал пару почтовых запросов API FB, и они отлично работают, один из POST на самом деле выплевывает в консоли идентификатор пользователя, которого я должен пройти если я хочу получить дополнительную информацию о профиле в случае, если я захочу его повторно использовать, чтобы разместить его где-нибудь еще в другом API.GET-запрос к API-интерфейсу fb не работает

Итак, идея состоит в том, чтобы заставить профиль пользователя повторно использовать его.

После документации: HERE

Это все хорошо, когда делается вручную, потому что я получаю информацию, что мне нужно, выполнив:

curl -X GET "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=PAGE_ACCESS_TOKEN"

Однако, если вы будете делать в моем коде:

function getUserProfile (sender) { 
    request({ 
     method : "GET", 
     uri : "https://graph.facebook.com/v2.6/" + sender + "?", 
     qs  : { 
      fields:"first_name,last_name,profile_pic,locale,timezone,gender", 
      access_token : FB_PAGE_ACCESS_TOKEN 
     }, 
     json : true 
    } 
); 
} 
console.log('fb user GET Request: ', request); 

Я получаю жалобу о том, что ури не передается правильно, и я не получаю ничего печатного в co nsole:

Вот лог:

> node app.js 
fb user GET Request: function request(uri, options, callback) { 
    if (typeof uri === 'undefined') { 
    throw new Error('undefined is not a valid uri or options object.') 
    } 
    var params = initParams(uri, options, callback) 
    if (params.method === 'HEAD' && paramsHaveRequestBody(params)) { 
    throw new Error('HTTP HEAD requests MUST NOT include a request body.') 
    } 
    return new request.Request(params) 
} 

Что мне не хватает? Любые указатели были бы замечательными.

Edit:

Я нашел SO опубликовать HERE и попытался Приведенное решение, но журнал все еще невидимы.

Я использую heroku как сервер, но я не вижу никаких объектов из запроса GET в журналах. Я должен уметь видеть, что я получаю, от console.log?

Таков требует сделано:

const async  = require("async"); 
const uuid  = require("node-uuid"); 
const request = require('request'); 

const apiai = require('apiai'); 
const express = require('express'); 
const bodyParser = require('body-parser'); 
const JSONbig = require('json-bigint'); 

ответ

0

Похоже, вы определяете он опцию для объекта запроса, однако не ясно, каким образом вы выполняете запрос HTTP.

Вы можете попробовать что-то вроде?

options = { 
     method : "GET", 
     uri : "https://graph.facebook.com/v2.6/" + sender + "?", 
     qs  : { 
      fields:"first_name,last_name,profile_pic,locale,timezone,gender", 
      access_token : FB_PAGE_ACCESS_TOKEN 
     }, 
     json : true 
    } 

Затем используйте этот параметр, чтобы выполнить запрос

request(options, callback).end() 
+0

Пожалуйста, вы можете уточнить существо ясно, по просьбе? Я пытаюсь получить имя пользователя и фамилию и отправить в другое приложение, но ответ не доступен, или если я не вижу его в своих журналах. – Tmute

+0

Я понял из вашего вопроса, что вы получаете неопределенный при попытке сделать HTTP-запрос API facebook. Я не был уверен, какой клиент http вы используете для выполнения этих запросов? FB sdk для узла? некоторые другие клиентские библиотеки http. Соответственно изменится конкретный код. Я предложил здесь использовать что-то вроде: https://docs.nodejitsu.com/articles/HTTP/clients/how-to-create-a-HTTP-request/ –

+0

Я использовал модуль запроса с узла. Пожалуйста, @santanu см. Редактировать на почте – Tmute