来自Android游戏的Facebook状态更新

时间:2015-08-23 09:32:04

标签: android facebook

我正在尝试在我的Android游戏中构建一个功能,用户可以在FB上发布他们的分数。我已经完成了所需的集成步骤,但是当我尝试发布到FB时,我收到以下错误:

发生错误。请稍后再试

没有错误消息,所以我不确定这是FB的应用验证问题还是我的代码出错。

如果我需要获得FB批准的应用程序以在测试环境中运行此功能,请告知我们。 FB上的“状态和审核”页面要求提供隐私政策网址,但我的应用没有。如果此类集成需要隐私政策网址,请与我们联系。

此外,以下是我的代码。如果有人能告诉我,如果我错过了什么,那就太好了。

以下是我的清单中的相关标签:   

   <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/facebook_app_id" />
    <meta-data
        android:name="com.facebook.sdk.ApplicationName"
        android:value="BookQuotesQuiz" />

    <provider android:authorities="com.facebook.app.FacebookContentProvider701127413351677"
      android:name="com.facebook.FacebookContentProvider"
      android:exported="true"/>

以下是我发布到FB的代码:

public void updateFBStatus(View view){

    FacebookSdk.sdkInitialize(getApplicationContext());
    CallbackManager callbackManager = CallbackManager.Factory.create();
    final ShareDialog shareDialog = new ShareDialog(this);
    shareDialog.registerCallback(callbackManager, new FacebookCallback<Result>() {
        @Override
        public void onSuccess(Result result) {
            Log.d("SUCCESS", "success");
        }
        @Override
        public void onError(FacebookException error) {
            Log.d("ERROR", error.toString());
        }
        @Override
        public void onCancel() {
            Log.d("CANCEL", "cancel");
        }
    });
    if (shareDialog.canShow(ShareLinkContent.class)) {

        ShareLinkContent linkContent = new ShareLinkContent.Builder()
               .setContentTitle("Book Quotes Quiz: Highscore")
               .setContentDescription("My new highscore is " + score)
               .setContentUrl(Uri.parse("https://play.google.com/store/apps/details?id=com.games.bookquotesquiz"))
               .setImageUrl(Uri.parse("https://lh3.ggpht.com/v7Q3EB6HvvBW9mC4WPokSZC6QM1hFFk5Gp5Nj97nLtwYkXQXe4jLmJUa8OSwYfssz6c=w300-rw"))
               .build();
        shareDialog.show(linkContent);
    }
}

1 个答案:

答案 0 :(得分:0)

确保您的活动有onActivityResult

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}