Facebook图形API:从GraphRequest回调返回对象

时间:2017-05-04 00:44:32

标签: javascript facebook callback facebook-android-sdk

我有一个成功发出请求的函数,但是在将它转换为React-Redux数据流时遇到了麻烦,因为我无法弄清楚如何返回回调中收到的对象。

我目前所拥有的功能不起作用,但我确信它能成功完成请求,因为我可以在控制台时看到它。记录它。

import FBSDK, { AccessToken, GraphRequest, GraphRequestManager } from 'react-native-fbsdk'

export const callback = (error, result) => {
  if (error) {
    console.log(error);
    return error
  } else {
    console.log(result);
    return result;
  }
}

export const graphRequestFor = fields => {
  AccessToken.getCurrentAccessToken()
  .then(token => {
    console.log(token);
    const request = new GraphRequest(
      '/me',
      {
        accessToken: token.accessToken,
        parameters: {
          fields: {
            string: fields
          }
        }
      }, callback
    )
    new GraphRequestManager().addRequest(request).start()
  })
}
export const login = () => {
    graphRequestFor('first_name, last_name')
    .then(results => {
      return results
    }) //undefined
  }

1 个答案:

答案 0 :(得分:0)

不是我的直接问题的答案,但我的问题的解决方案是直接在操作中进行api调用并从回调调度对象

import FBSDK, { AccessToken, GraphRequest, GraphRequestManager } from 'react-native-fbsdk'

export const login = params => dispatch => {
  AccessToken.getCurrentAccessToken()
  .then(token => {
    const request = new GraphRequest(
      '/me',
      {
        accessToken: token.accessToken,
        parameters: {
          fields: {
            string: params
          }
        }
      }, (error, result) => {
        if (error) {
          console.log(error);
          return dispatch(receiveCurrentUser(error))
        } else {
          return dispatch(receiveCurrentUser(result))
        }
      }
    )
    new GraphRequestManager().addRequest(request).start()
  })
}