Facebook Like Button无效(结果代码0)

时间:2015-02-13 15:03:08

标签: android facebook facebook-like

我在我的Android应用程序中包含FB登录,它运行正常。现在,我想添加like按钮。这是我做的:

  1. 完全遵循https://developers.facebook.com/docs/android/like-button
  2. 上的说明
  3. 我在layout.xml文件中创建了一个LikeView:
  4. <com.facebook.widget.LikeView
       android:id="@+id/LikeView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content">
    </com.facebook.widget.LikeView>
    
    1. 我的代码如下:
    2. @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_story_reader);
          uiHelper = new UiLifecycleHelper(this, callback);
          uiHelper.onCreate(savedInstanceState);
      
          LikeView likeView = (LikeView) findViewById(R.id.LikeView);
          likeView.setObjectId("http://shareitexampleapp.parseapp.com/photo1/");
      }
      ...
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          uiHelper.onActivityResult(requestCode, resultCode, data, null);
          Log.e("", "requestCode: " + requestCode);
          Log.e("", " resultCode: " + resultCode);
          Log.e("", "       data: " + data);
      
      1. 这是输出:
      2.   

        requestCode:64207      resultCode:0      数据:意图{(有额外的)}

        1. 所以我的代码指向FB提供的示例页面。因此,目标对象id是否正确配置是不可能的。
        2. 我没有使用任何测试帐户或类似帐户。我用我真实的FB帐号进行测试。
        3. 这就是:

          1. 点击相似视图时,会打开一个空白页然后再次关闭
          2. 以上内容打印到logcat
          3. 什么都没发生:没有喜欢或其他什么
          4. 为什么这个示例的1对1副本不起作用?

2 个答案:

答案 0 :(得分:0)

我昨天遇到了完全相同的问题。我没有在developers.facebook.com上以管理员/开发人员的身份添加到应用中。

您需要做什么:

  1. 将自己注册为Facebook开发人员(如果尚未完成)
  2. 通过“我的应用”标签添加您的应用
  3. 选择您的应用,点击角色(左侧菜单) - 您的角色应为管理员(或开发者)
  4. 如果该应用已存在且其他人是管理员,请让他/她将您添加到该处。您还需要将自己的电话号码添加到自己的帐户中,以便添加到自己的应用中。

答案 1 :(得分:0)

使用最新的facebook SDK(版本4.6.0),我发现这个值(64207)原来是:

CallbackManagerImpl.RequestCodeOffset.Share.toRequestCode()

在这个阶段,我打电话给

callbackManager.onActivityResult(requestCode, resultCode, data);

导致我的注册FacebookCallback<Sharer.Result>回调的onError函数被调用。

public void onError(FacebookException e)

错误是“无法获取应用名称。”。搜索解决方案主要产生了在FacebookDialog.ShareDialogBu​​ilder上设置applicationName的答案,但这似乎是facebook sdk的旧版本。

对我有用的解决方案是禁用此处给出的应用沙盒模式 - How to disable Sandbox Mode for app in new Facebook Developer?

希望有助于节省时间涉及facebook docs quagmire。

编辑:沙盒禁用解决方案在一段时间后停止工作。当我检查时,我有一个旧的Facebook应用程序ID。一旦纠正,它就有效了。