最近因为买了vpn然后就玩了下facebook,我个人用的是流星加速器,反正网速挺好的,首先是说下登录吧
主要步骤有以下几步遇到很多坑,被那个key hash玩得不要不要的,我去,但是有古语说的好,坚持才能取得最后的胜利!哈哈!
首先说下添加在build.gradle中依赖代码如下
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
然后再Project Structure 可以看到添加的facebook.jar
首先看下战国其实也不难主要把文档花几分钟就可以了!快速入门
注册直接进入
然后登录之后输入您的账号和密码如下图所示
输入完之后就可以看到对该应用授权如下图
最后就可以看到已经登录成功了取消就关闭当前对话,否则注销当前用户
到这里实现功能说完了,下面说下步骤
1、首先注册登录然后创建自己的应用程式然后会成一个编号
> Add Facebook SDK to Your Project To use Facebook SDK in a project, add
> it as a build dependency and import it. If you are starting a new
> project, follow all the steps below. To add Facebook SDK to an
> existing project, start with step 3.
> 1. Go to Android Studio | New Project | Minimum SDK
> 2. Select "API 15: Android 4.0.3" or higher and create your new project.
> 3. In your project, open your_app | Gradle Scripts | build.gradle
> 4. Add the Maven Central Repository to build.gradle before dependencies: repositories {
> mavenCentral()
> }
> 5. Add compile 'com.facebook.android:facebook-android-sdk:[4,5)' to your build.gradle dependencies.
> 6. Build your project.
> 7. Import Facebook SDK into your app: import com.facebook.FacebookSdk; Add Facebook App ID Add your Facebook App ID to your app and update
> your Android manifest.
> 1. Open your strings.xml file, for example: /app/src/main/res/values/strings.xml.
> 2. Add a new string with the name facebook_app_id containing the value of your Facebook App ID: <string
> name="facebook_app_id">860026030806612</string>
> 3. Open AndroidManifest.xml.
> 4. Add a uses-permission element to the manifest: <uses-permission android:name="android.permission.INTERNET"/>
> 5. Add a meta-data element to the application element: <application android:label="@string/app_name" ...>
> ...
> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
> ... </application>
需要注意的是您的包名以及主Activity的完整类名这里是我仅供参考
下面贴完整代码MainActivity
首先是sdk初始化
//初始化facebook sdk FacebookSdk.sdkInitialize(getApplicationContext());
如果没有安装FaceBook要求安装apk文件代码
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.hellofacebook",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
setContentView(R.layout.activity_main);
mCallBackManager=CallbackManager.Factory.create();
**然后注册登入接口**
//找到loginbutton
btn_facebook= (LoginButton) findViewById(R.id.facebook);
btn_facebook.registerCallback(mCallBackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
//登录成功
Log.e(TAG,"on Success");
}
@Override
public void onCancel() {
//取消登录
Log.e(TAG,"on Cancel");
}
@Override
public void onError(FacebookException error) {
//登录出错
Log.e(TAG,"on Error");
}
});
}
接口回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallBackManager.onActivityResult(requestCode,resultCode,data);
// if(requestCode==FaceBookShareUtils.SHARE_REQUEST_CODE){
// mCallBackManager.onActivityResult(requestCode,resultCode,data); }
}
绑定Token标识
public void getFaceBookToken(View view) {
AccessToken mAccessToken = AccessToken.getCurrentAccessToken();
Log.e("token", "token :" + mAccessToken.getToken() + "," + "user_id" + mAccessToken.getUserId());
}
@Override
protected void onResume() {
super.onResume();
AppEventsLogger.activateApp(this);
}
@Override
protected void onPause() {
super.onPause();
AppEventsLogger.deactivateApp(this);
}
最后给大家看下清单文件AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="zm.facebook.com.facebooktest">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity android:name=".LanguageActivity"></activity>
<provider android:authorities="com.facebook.app.FacebookContentProvider259759727729348"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
</application>
</manifest>
res/values/strings.xml如下、
<string name="facebook_app_id">860026030806612</string>
<string name="app_site">https://www.facebook.com/</string>
最后主xml布局文件一个LoginButton如下所示
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:background="#c99e9e">
<com.facebook.login.widget.LoginButton
android:id="@+id/facebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
/>
</LinearLayout>
最后补充下生产key hash方法 下载完之后解压放到
C:\Program Files\Java\jdk1.7.0_79这里是我的目录改成您自己的就ok!另外需要将下载之后添加到系统环境变量Path中我的如下图所示
需要下载
Mac OX平台
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
W indow平台
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
到这里基本结束了!后期会加入FaceBook分享以及推播广告等,请打击敬请期待,另外本人群号点击链接加入群【疯狂Android进阶之旅】:https://jq.qq.com/?_wv=1027&k=43IeSRc欢迎新老司机加入哈哈!随意开车!
最后补充key hash签名工具