2014-03-12 74 views
6

我无法使用Android Facebook SDK发出API请求,甚至无法从登录回调中获取用户 - 它始终返回空值。来自服务器的API调用需要一个appsecret_proof参数

特别是与newMeRequest,我收到以下错误信息:

{ "error": { 
"message": "API calls from the server require an appsecret_proof argument", 
"type": "GraphMethodException", 
"code": 100 } } 

事实上,它似乎很明显,因为标志设置为true,Facebook的应用程序选项。但是,我知道移动SDK可以在没有秘密的情况下发出API请求。但是,如果我尝试使用Facebook Graph API调试器中currentSession的访问令牌,则响应与上述内容相同。

我不知道这是否与新的Android Facebook SDK有关,但我的代码基本上与示例中的代码相同。登录去很好,我也得到了会话令牌,但我不能做任何API请求......

loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() { 
    @Override 
    public void onUserInfoFetched(GraphUser user) { 
     graphUser = user; 
    } 
}); 


Request.newMeRequest(currentSession, new Request.GraphUserCallback() { 
    @Override 
    public void onCompleted(GraphUser user, Response response) { 
    } 
    } 
}).executeAsync(); 
+0

我得到同样的错误,你是如何解决这个问题的。请帮助我这是紧急的。 –

回答

19

,我能够把它的工作的唯一办法,是通过设置在NoApp Secret proof for API calls的Facebook App的高级设置。

但是,这是一个修复,而不是一个解决方案,因为我无法做到设置为Yes的选项中的请求(iOS iOS的Facebook SDK中可能)。

+0

这是安全的吗?禁用该选项会产生哪些安全风险? – user2804865

4

的“SHA256”哈希你需要在Facebook应用程序预先设置来禁用Require App Secret

+0

这是安全的吗?禁用该选项会产生哪些安全风险? – user2804865

0

虽然不是一个实际的回答你的问题(因为它不涉及Android的SDK),看来,作为2018年3月,仍然存在着关于appsecret_proof一些问题,并从网页调用(Javascript)/和可能的移动(不确定)客户端。

Facebook bug report (February 2018) - issue reappeared

Facebook bug report (October 2016)

Facebook bug report (February 2015)

也就是说,对于应用程序需要应用程序的秘密启用App Dashboard > Settings > Advanced > Security > Require App Secret,似乎一个人不能没有经过appsecret_proof从Javascript执行API调用 - 在写作时刻(2018年3月)。

快速“修复” - 禁用标志。根据要求,人们也可以选择有两个Facebook应用程序:一个用于网页/手机通话(标志禁用),另一个用于服务器端通话(启用标志)。

相关问题