生成" appsecret_proof"用于Scala的restfb

时间:2016-02-04 09:06:21

标签: facebook scala playframework playframework-2.0 restfb

我正在尝试使用Scala和Play 2.3使用restfb 1.18.1获取Facebook用户信息

进行测试我使用Access Token生成了Graph API Explorer 现在我使用以下代码来访问用户信息

val MY_ACCESS_TOKEN = "abc"
    val  MY_APP_SECRET = "xyz"
    val facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN  ,MY_APP_SECRET )
    val fbuser = facebookClient.fetchObject("me",classOf[User])
    log.info("User first  name :{} ", fbuser.getFirstName)
    log.info("User last name : {}" , fbuser.getLastName)
    log.info("User Email : {}" , fbuser.getEmail)

但我在这里遇到例外

> play.api.Application$$anon$1: Execution
> exception[[FacebookGraphException: Received Facebook error response of
> type GraphMethodException: Invalid appsecret_proof provided in the API
> argument (code 100, subcode null)]]

当我尝试制作没有MY_APP_SECRET的FbClient实例时

val facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN  )

它运行正常,我收到来自facebook

的回复信息

我已经搜索过但我没有找到任何可以使用scala

生成appsecret_proof的内容

请指导我

1 个答案:

答案 0 :(得分:1)

请确保您在Graph API资源管理器中使用适用于正确应用程序的启动访问令牌。对我来说,为那里选择的默认应用程序生成令牌是一个常见的错误。如果是这种情况,您的令牌与您的秘密不符,这会导致错误。

另外,如果您向图表浏览器询问" / me"它只会让你回归" id"和"名称"同样。如果您想要其他信息,请说明您需要什么,例如" / me?fields = id,name,about,age_range"