栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android / Java —将简单文本发布到Facebook墙?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android / Java —将简单文本发布到Facebook墙?

在汤姆(Tom)的帮助下,我找到了答案(谢谢)。关键是使用Facebook Android SDK通过“ stream.publish” API调用创建对话框。步骤如下:

  1. 下载官方的Facebook Android SDK:http : //github.com/facebook/facebook-android-sdk
  2. 将项目文件导入Eclipse。
  3. 将项目导出为* .jar文件。(这可能会导致冲突)

[更新]

Facebook最近更新了源代码,我注意到该图标文件与我的项目(Android 1.5+)导致资源ID冲突。我的解决方案是忘记导出为jar。相反,直接将Facebook“ com”文件夹复制到应用程序的“ src”文件夹中(即“ com.facebook.android”应为应用程序中的一个包…与源文件一起)。如果“ src”文件夹中已经有一个“ com”文件夹,则不必担心出现任何有关覆盖文件的对话框,任何源文件都不应被覆盖。返回Eclipse,并刷新“ src”文件夹,“ com.facebook.android”现在应该作为软件包列出。将其中包含的Facebook图标之一复制到应用程序的“可绘制”文件夹中,并对其进行刷新。Eclipse会抱怨“ FbDialog.java”文件…只需将指向你应用程序“ R”文件的导入添加到该文件的头(例如,如果你应用程序的包名称是“ com.android.myapp”,则添加此:“导入com.android.myapp.R;”)。如果需要,请转到#5。

  1. 将.jar文件添加到项目的构建路径

  2. 查看以下简化的示例代码:

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import com.facebook.android.*;import com.facebook.android.Facebook.DialogListener;public class FacebookActivity extends Activity implements DialogListener,        OnClickListener{    private Facebook facebookClient;    private LinearLayout facebookButton;    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        this.setContentView(R.layout.test);//my layout xml        facebookButton = (LinearLayout)this.findViewById(R.id.Test_Facebook_Layout);    }    @Override    public void onComplete(Bundle values)    {        if (values.isEmpty())        { //"skip" clicked ? return;        }        // if facebookClient.authorize(...) was successful, this runs        // this also runs after successful post        // after posting, "post_id" is added to the values bundle        // I use that to differentiate between a call from        // faceBook.authorize(...) and a call from a successful post        // is there a better way of doing this?        if (!values.containsKey("post_id"))        { try {     Bundle parameters = new Bundle();     parameters.putString("message", "this is a test");// the message to post to the wall     facebookClient.dialog(this, "stream.publish", parameters, this);// "stream.publish" is an API call } catch (Exception e) {     // TODO: handle exception     System.out.println(e.getMessage()); }        }    }    @Override    public void onError(DialogError e)    {        System.out.println("Error: " + e.getMessage());    }    @Override    public void onFacebookError(FacebookError e)    {        System.out.println("Error: " + e.getMessage());    }    @Override    public void onCancel()    {    }    @Override    public void onClick(View v)    {        if (v == facebookButton)        { facebookClient = new Facebook(); // replace APP_API_ID with your own facebookClient.authorize(this, APP_API_ID,     new String[] {"publish_stream", "read_stream", "offline_access"}, this);        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号