无法读取fb插件共享的错误响应

时间:2016-10-10 16:52:14

标签: json cordova facebook-graph-api error-handling cordova-facebook

我在我的应用中使用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。

0 个答案:

没有答案