2012-02-19 47 views
0

我的Android应用程序的用户应该能够发布消息到他的Facebook墙上。安装了官方Facebook应用程序的Facebook墙上的贴子

我用这个教程作为基础我的开发: Link to tutorial

到目前为止,这是工作的罚款,如果我没有安装官方的Facebook应用程序。因此,代码使用webview而不是SSO。

但是,如果我在相同的设备上安装Facebook应用程序,则会发生以下情况: 在我的应用程序中按“发布到Facebook按钮”即可打开Facebook应用程序。但它关闭immediatley并返回到我的应用程序。

我到目前为止发现的唯一的解决方法是使用Facebook.FORCE_DIALOG_AUTH:

facebook.authorize(this.activity, this.permissions,Facebook.FORCE_DIALOG_AUTH,new LoginDialogListener()); 

但是这避免了SSO始终使用web视图。有Android应用程序在那里使用官方Facebook应用程序和做SSO。但是我整个周末都搜索了一个解决方案,但却不知道他们是怎么做的。

将安卓键哈希注入Facebook也没有改变任何东西。

回答

0

我不知道为什么你就跟着教程当Facebook具有了自己的最新教程:http://developers.facebook.com/docs/mobile/android/build/

官方教程讨论了很多问题,包括签署它,这样它会在工作发展阶段。它当然也谈论认证和SSO,这里是你需要的SSO:

Facebook facebook = new Facebook("YOUR_APP_ID"); 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     facebook.authorize(this, new DialogListener() { 
      @Override 
      public void onComplete(Bundle values) {} 

      @Override 
      public void onFacebookError(FacebookError error) {} 

      @Override 
      public void onError(DialogError e) {} 

      @Override 
      public void onCancel() {} 
     }); 
    } 

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

     facebook.authorizeCallback(requestCode, resultCode, data); 
    } 

而就是这样。 请阅读官方教程,并按照他们的指示,它应该工作得很好。

+0

密钥哈希必须从我自己创建的密钥不是从androiddebugkey,对不对? – tobias 2012-02-19 13:42:06

+0

您不必拥有这些内容,但应该使用它们,或者其他类似的内容。这些方法会持续存在,然后加载为您的应用程序为用户发布的访问令牌。如果没有保存,您必须经常向用户发送身份验证方式,这会导致用户体验不佳。我建议你停止使用这个特定的教程,并使用官方的一个,旁边的例子facebook提供了他们的android sdk(https://github.com/facebook/facebook-face-android-sdk/tree/master/examples) – 2012-02-19 13:49:30

+0

至于关键散列,请按照步骤5:将应用程序的签名添加到Facebook应用程序设置**中。它说那里你正在使用androiddebugkey。这仅仅是为了开发目的。 – 2012-02-19 13:53:03

相关问题