6

用户每次完成一个级别时都必须单击共享对话框中的发布按钮。我需要为用户消除这种困难。到目前为止,我已经创建了一个自定义故事并要求用户每次都点击帖子。

问题 :

  1. 我听说过开放图表故事的无摩擦 FB 帖子。安卓有可能吗?

  2. 如果在 android 中提供了无摩擦的 FB 帖子,请指出我在下面粘贴的代码中的更正。

  3. 如果 android 中提供了无摩擦的 FB 帖子,我需要从用户那里获得什么许可?

代码

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "puzzlegameballmania:level")
            .putString("og:title", "Cleared Level-1 !!!")
            .putString("og:image", "http://ixxxxwsz.jpg")
            .putString("og:url", "https://play.google.com/store/apps/details?id=com.gamxxxxx.android")
            .putString("og:description", "Color of the balls matters more. Lets break the goal and go higher !")
            .putString("puzzlegameballmania:level:title", "LEVEL 1")
            .build();

    // Create an action
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("puzzlegameballmania:clear")
            .putObject("puzzlegameballmania:level", object)
            .build();

    // Create the content
    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("puzzlegameballmania:level")
            .setAction(action) 
            .build();

    ShareDialog.show(AndroidLauncher.this, content);
4

1 回答 1

1
  1. 是的
  2. 不要使用ShareDialog,而是使用ShareApi,这是一些示例代码
  3. 需要publish_actions权限,您的应用将由 Facebook 审核

您可能还想阅读这个Facebook 开发人员帖子,这似乎不鼓励隐式/自动发布。如果应用程序尚未审核,则会向用户显示警告。

编辑


使用前ShareApi,请先查看应用是否拥有所需权限:

private boolean hasPublishPermission() {
    AccessToken accessToken = AccessToken.getCurrentAccessToken();
    return accessToken != null && accessToken.getPermissions().contains("publish_actions");
}

如果没有,请执行以下代码以请求权限:

LoginManager.getInstance().logInWithPublishPermissions(
          this, Arrays.asList("publish_actions"));

如果您在未经适当许可的情况下使用ShareApi,它将失败并onError(FacebookException)调用方法,假设您已将 FacebookCallback 传递给ShareApi.

于 2015-11-21T11:40:28.833 回答