Facebook身份验证效果很好,但是当我去制作图表请求时:
const infoRequest = new GraphRequest(
'/me',
{
accessToken: tokenString,
fields: 'email,first_name,name,last_name,picture'
},
this._responseInfoCallback
);
new GraphRequestManager().addRequest(infoRequest).start();
}
我得到" TypeError:无法读取属性' start'未定义"
使用Chrome调试器,一切看起来都应该正常工作,甚至将GraphRequestManager作为变量存储,只需调用start(),就可以获得所需的一切。当我调用start()时,即使使用我在此站点上找到的示例代码也会失败。我错过了一些明显的东西吗?
这里有更多信息。我用这个导入:
const FBSDK = require('react-native-fbsdk');
const {
GraphRequest,
GraphRequestManager
} = FBSDK;
如果我使用FBGraphRequest和FBGraphRequestManager而不是上面,我会收到错误,说明GraphReqest等在我使用它们时不起作用。否则,我的其余代码看起来与Shivam非常相似,但我得到了“无法读取属性”的开始'未定义',显然GraphRequestManager调用失败或未定义(这对我没有意义)。
答案 0 :(得分:1)
根据我的经验,您要请求的字段在参数内指定:
AccessToken.getCurrentAccessToken().then(
(data) => {
let accessToken = data.accessToken
const infoRequest = new GraphRequest(
'/me',{
accessToken: accessToken.toString(),
parameters: {
fields: {
string: 'email,first_name,name,last_name,picture'
}
}
},
this._responseInfoCallback.bind(this),
);
new GraphRequestManager().addRequest(infoRequest).start();
})
Ps你在哪里放置这些功能?他们是否在课堂上?
答案 1 :(得分:0)
您的import语句可能存在潜在问题,您可以共享整个代码,例如:
const FBSDK = require('react-native-fbsdk');
const {
FBGraphRequest,
FBGraphRequestManager,
} = FBSDK;
_responseInfoCallback(error: ?Object, result: ?Object) {
if (error) {
alert('Error fetching data: ' + error.toString());
} else {
alert('Success fetching data: ' + result.toString());
}
}
const postRequestParams = {
fields: {
message: 'Hello World!'
}
}
const postRequestConfig = {
httpMethod: 'POST',
version: 'v2.7',
parameters: postRequestParams,
accessToken: token.toString()
}
const infoRequest = new GraphRequest(
'/me/feed',
postRequestConfig,
this._responseInfoCallback,
);
new FBGraphRequestManager().addRequest(infoRequest).start();