`

Android下集成FacebookSDk到项目并发表评论

阅读更多
项目中需要发表自己的评论到Facebook,需要集成FacebookSDK,我这里用的是FacebookSDK3.5
下面是我网上找的集成FacebookSDK的步骤,基本和我实现的步骤一致,我就不重新写了,直接copy过来。
//******************************************************************************
简单介绍一下:
大家都知道,FaceBook在国外很多人使用,而国内就比较少人使用。我们做程序员的就应该不断的去学习再学习,这样才能充实自己,谁又说不是呢!好吧,废话不多说了,下面就让我们一起进入FaceBook学习之旅吧!

开始学习的时候大家应该要弄个能够翻 墙的网络,国内网络是不能进入facebook网站的,大家可以去弄个“翻 墙软件”或VPN什么的!LZ这边使用的是一个免费的翻 墙软件,网速还可以,流量也不限的,不过就是每隔十分钟断一次,就是这点比较坑爹,不过对于我们只需要测试,还是勉勉强强可以接受的。有条件的可以去买个VPN这样就最好了。
http://www.xroute.net/(XROUTE 网络加速器)  这是它的官网,没条件的可以跟LZ一样使用这个软件来学习。

1、下载最新 Facebook SDK for Android 3.0   下载地址:http://developers.facebook.com/android/
2、下载好 解压 facebook-android-sdk-3.0
用eclipse导入工程,导入解压文件夹下的facebook文件夹 出现 FacebookSDK 项目
3、创建 第一个Facebook项目工程 FirstFacebook 导入FacebookSDK 项目包





注意:如果导入的项目包显示为错误的时候,就要查看一下FacebookSDK项目包和自己创建的工程是否在同一目录下
    如果导入完成后自己创建的工程报错,看看工程下libs文件夹下是否有android-support-v4.jar 这个jar文件,如果有的话,就把它给删了,然后重新导入
    FacebookSDK项目包。原因是FacebookSDK下也集成了这个包,所以会有冲突。
4、进入https://developers.facebook.com/  facebook开发者网站,没账号的注册一个帐号,有的就直接登录。然后点击导航栏上的Apps进入应用专区



创建一个新的App 点击Create New App 按钮,弹出下面对话框。App Name为给这应用取的一个名字,下面的可以忽略不用填,直接点击继续
    


点击Native Android App  填入以下数据:
Package Name 应用包名
Class Name 应用入口Activity完整类名
Key Hashes  哈希值
Facebook Login 选择启用
保存更改。







获取哈希值的方法:
下载 openssl-0.9.8k_WIN32  下载地址:[url]http://download.csdn.net/detail/h7870181/5054864 [/url]  
或者直接本文最下面附件中下载
下载完成后,解压到C盘根目录
进入cmd  粘贴以下字符串,keystore默认密码为android 注意不要写错了。出来一串字符则为我们所需要的哈希值。
keytool -export -alias myAlias -keystore C:\Users\Administrator\.android\debug.keystore | C:\openssl-0.9.8k_WIN32\bin\openssl sha1 -binary | C:\openssl-0.9.8k_WIN32\bin\openssl enc -a -e





注意还有一个地方也要填入刚刚获取的哈希值!




ok ! 配置就完成了!

5、下面就让我们来看看项目工程中是怎么配置的
  在AndroidMainfest.xml中添加网络权限和在facebook中创建应用的App Id
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.thirdfacebook"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.thirdfacebook.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.facebook.LoginActivity"/>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>
    </application>

</manifest>


在string.xml中加入app_id,注意,这里app_id似乎只能在string.xml配置,不能直接这样写<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="158121714340391"/>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">ThirdFacebook</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="app_id">158121714340391</string>
</resources>


OK!运行项目没有报错,证明集成FacebookSDK就成功了。
//******************************************************************************
下篇文章则介绍一下使用Facebook发表评论!注意必须集成SDK3.5。如果手机没有安装Facebook app则会报FacebookException;如果安装了,没有登录过Facebook,则弹出Facebook登录界面,否则直接进入发表评论界面。注意,手机也需要 翻 墙!

package com.reyo.goingus;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.widget.Toast;

import com.facebook.FacebookException;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.widget.FacebookDialog;
import com.facebook.widget.LoginButton;

public class FacebookLoginActivity extends Activity {

	private Context context;
	 private UiLifecycleHelper uiHelper;  
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_facebook);//随便一个布局即可
		context=this;
//		LoginButton authButton = (LoginButton)findViewById(R.id.login_button);
//      authButton.setFragment(this);  
//      authButton.setReadPermissions(Arrays.asList("email","user_likes", "user_status"));
		
		/**
		 * 打印哈希值
		 */
		try {
			PackageInfo info = getPackageManager().getPackageInfo(
					"com.reyo.goingus", PackageManager.GET_SIGNATURES);
			for (Signature signature : info.signatures) {
				MessageDigest md = MessageDigest.getInstance("SHA");
				md.update(signature.toByteArray());
				//Bk0955xpaU4AYJVWumc6PHuDSX8=
				Log.i("tag","KeyHash:"+Base64.encodeToString(md.digest(), Base64.DEFAULT));
			}
		} catch (NameNotFoundException e) {

		} catch (NoSuchAlgorithmException e) {

		}

		uiHelper = new UiLifecycleHelper(this, callback);  
        uiHelper.onCreate(savedInstanceState);  
        
        try {
	        FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
					.setLink("https://developers.facebook.com/android")
					.setApplicationName("BGR")
					.setDescription("description")
					.setName("name")
					.setCaption("caption")
					.setPlace("place")
			        .build();
			uiHelper.trackPendingDialogCall(shareDialog.present());

        } catch (FacebookException e) {
        	Toast.makeText(context, "Facebook app is not installed", Toast.LENGTH_SHORT).show();
		} catch (Exception e) {
			Toast.makeText(context, "Unexpect Exception", Toast.LENGTH_SHORT).show();
		}

	}
	
	@Override  
    public void onResume() {  
        super.onResume();  
  
        // For scenarios where the main activity is launched and user  
        // session is not null, the session state change notification  
        // may not be triggered. Trigger it if it's open/closed.  
        Session session = Session.getActiveSession();  
        if (session != null && (session.isOpened() || session.isClosed())) {  
            onSessionStateChange(session, session.getState(), null);  
        }  
  
        uiHelper.onResume();  
    }  
	 
	@Override  
    public void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(requestCode, resultCode, data);  
        uiHelper.onActivityResult(requestCode, resultCode, data);  
        finish();
    }  
	
	@Override  
    public void onPause() {  
        super.onPause();  
        uiHelper.onPause();  
    }  
  
    @Override  
    public void onDestroy() {  
        super.onDestroy();  
        uiHelper.onDestroy();  
    }  
  
    @Override  
    public void onSaveInstanceState(Bundle outState) {  
        super.onSaveInstanceState(outState);  
        uiHelper.onSaveInstanceState(outState);  
    }  
	
	private Session.StatusCallback callback = new Session.StatusCallback() {  
        @Override  
        public void call(Session session, SessionState state,Exception exception) {
            onSessionStateChange(session, state, exception);  
        }  
    };  
    
    private void onSessionStateChange(Session session, SessionState state,  
            Exception exception) {  
        if (state.isOpened()) {  
            Log.i("tag", "Logged in...");  
        } else if (state.isClosed()) {  
            Log.i("tag", "Logged out...");  
        }  
    }

}
  • 大小: 78.3 KB
  • 大小: 61.7 KB
  • 大小: 18.7 KB
  • 大小: 12.4 KB
  • 大小: 25.6 KB
  • 大小: 32.4 KB
  • 大小: 8.5 KB
  • tool.rar (6.9 MB)
  • 描述: 手机翻墙软件
  • 下载次数: 21
分享到:
评论

相关推荐

    Android集成facebook实例

    以上就是Android集成Facebook登录的基本步骤。在实际开发中,你可能还需要处理如权限请求、错误处理、用户登出等功能,确保用户体验的顺畅。同时,Facebook SDK还提供了分享、好友邀请等更多功能,可以根据需求...

    facebook android sdk

    Facebook Android SDK是一个专门为Android开发者设计的工具包,它允许开发者将Facebook的功能集成到他们的Android应用中,例如登录、分享、社交图谱API访问等。这个SDK使得开发过程更加简便,可以提升用户体验,同时...

    facebook-android-sdk-4.18.0.zip

    Facebook Android SDK 4.18.0 是一个用于在Android应用程序中集成Facebook功能的开发工具包。这个SDK允许开发者轻松地实现用户登录、分享、广告、分析和其他Facebook服务。2017年发布的这个版本是当时最新的,为...

    Android分享到Facebook的sdk和demo源码

    - **FacebookSdk**:这是SDK的核心类,负责初始化SDK、设置应用ID、处理权限请求等操作。 - **CallbackManager**:处理Facebook回调事件,如登录成功、登录失败、权限请求等,需要在你的Activity中初始化并注册。 ...

    android faceBook SDK3.20.0

    Facebook SDK for Android是开发者用于在Android应用中集成Facebook功能的重要工具。版本3.20.0是该SDK的一个里程碑,提供了许多新特性和改进,帮助开发者更好地与Facebook平台交互,实现用户登录、分享内容、获取...

    facebook-android-sdk

    为了成功集成Facebook SDK,开发者需要执行以下步骤: 1. **设置项目**:在Android Studio项目中添加SDK依赖,并在AndroidManifest.xml中添加必要的权限和元数据。 2. **初始化SDK**:在应用启动时初始化Facebook ...

    facebook-android-sdk-4.11.0内附demo

    Facebook Android SDK 4.11.0 是一个用于在Android应用程序中集成Facebook功能的开发工具包,它允许开发者轻松地实现Facebook登录、分享、广告、分析等功能。此版本的SDK包含了一系列更新和改进,旨在优化用户体验和...

    集成facebook到android app 参考

    集成Facebook SDK到Android应用并不复杂,但需要处理好权限请求、回调管理和用户授权状态。FacebookUtil工具类可以帮助你封装这些操作,使得代码更加简洁和易于管理。记得保持SDK的更新,以获取最新的特性和安全修复...

    适用于安卓的脸书开发工具包,Facebook集成到您的Android应用程序中的APP完整项目开源代码

    这个开源库允许您将Facebook集成到您的Android应用程序中。将您的 Android 应用程序与 Facebook 集成,以使用 Facebook SDK for Android 构建引人入胜的社交应用程序。详细了解如何使用 Facebook 开发工具。适用于 ...

    2.[开源][安卓]facebook-android-sdk-master

    Facebook SDK for Android是一个开源库,允许开发者将Facebook集成到所开发的Android应用中。

    facebook-android-sdk-4.42.0

    Facebook Android SDK 4.42.0 是一个用于在Android应用中集成Facebook功能的重要开发工具包。这个SDK包含了多个模块,让开发者能够轻松地添加社交元素到他们的应用程序中,如用户登录、分享内容、营销自动化以及与...

    facebook-android-sdk-4.19.0

    Facebook Android SDK 4.19.0 是一个用于在Android应用程序中集成Facebook功能的重要开发工具包。这个SDK允许开发者轻松地实现用户登录、分享内容、获取用户信息、追踪应用事件以及利用Facebook广告等功能。以下是对...

    Android代码-Facebook和Google集成登录

    Implementation of Facebook and Google login Easy way to implement custom login and sign up Setup 1. Include in your project Using Gradle The Android-Smart-Login library is pushed to jcenter, so you ...

    facebook sdk4.36.0 eclipse终极版

    总的来说,Facebook SDK 4.36.0 for Eclipse是为那些在Eclipse环境下开发Android应用的开发者提供的一站式解决方案,简化了集成Facebook功能的过程,使开发者能够快速实现与Facebook的互动。虽然现在大部分开发者...

    facebook-android-sdk-4.6.0

    Facebook Android SDK 4.6.0 是Facebook提供的一款开发工具包,专为Android开发者设计,以便在他们的应用程序中集成Facebook的功能。这个SDK允许开发者轻松地实现Facebook登录、分享内容、获取用户信息以及与用户的...

    对FacebookSDK的ReactNative封装支持Android和iOS的

    在React Native应用开发中,集成Facebook的SDK可以让开发者利用Facebook的功能,如用户登录、内容分享、数据统计等。本文将详细讲解如何通过React Native封装Facebook SDK,以实现对Android和iOS平台的支持。 首先...

    Facebook广告sdk需要用到的v7-recyclerview的jar包

    2. **集成Facebook SDK**:按照Facebook官方文档,配置你的AndroidManifest.xml,添加必要的权限和元数据,以及在项目中引入Facebook SDK的aar或者jar包。 3. **初始化SDK**:在应用启动时,调用`FacebookSdk....

    Facebook登录 分享Android项目库

    在Android开发中,集成社交平台如Facebook的功能是一个常见的需求,这包括用户通过Facebook账户进行登录以及分享内容到用户的Facebook时间线。本项目库提供了一种简单有效的方式,帮助开发者快速实现这些功能。以下...

    Android原生项目集成最新版本ReactNative

    总之,集成React Native到Android原生项目可以充分利用React Native的跨平台能力,但同时也需要注意原生与JavaScript之间的通信、性能优化等问题。通过以上步骤,你应该能够成功地将最新版的React Native集成到你的...

Global site tag (gtag.js) - Google Analytics