我在我的应用中使用cordova-plugin-facebook4
版本1.7.4 for facebook分享。我在向Facebook分享一篇帖子时收到错误。
{errorMessage : "Facebook error: {FacebookServiceException: httpResponseCode: -1, facebookErrorCode: 190, facebookErrorType: null, message: Error validating access token: The user has not authorized application XXXXXXXX.}" }
从facebook文档中,我发现当用户取消授权我的应用时会发生此错误。所以我想再次登录并获得一个新的访问令牌。
在Facebook docs中,我发现当发生此错误时,facebook会发送错误代码190。我能够在错误响应中看到facebookErrorCode
字段。
我的问题是我无法解析错误响应以获取facebook错误代码。我尝试了几个JSON解析和JSON stringify方法。但没有任何效果。我无法获取错误代码。
任何人都可以帮我解析错误响应并获取错误代码吗?
更新
这是我的代码示例
facebookConnectPlugin.showDialog(
{ method: "share_open_graph",
action: 'og.likes',
object: JSON.stringify({
object:'https://developers.facebook.com/docs/',
})
},
function (response) {
console.log(JSON.stringify(response));
DialogService.showToast('FB_SHARE_SUCCESS', 'Short', 'Bottom');
},
function (response) {
console.log('share failed. ',response);
if(response.errorMessage.facebookErrorCode == 190){
fblogin.then(
function(response){
share();
},
function(error){
//
}
)
}else{
DialogService.showToast('FB_SHARE_FAILED', 'Short', 'Bottom');
}
}
);
如果用户授权发布应用,我可以发布到Facebook。 如果用户取消授权,我将无法捕获错误代码190。