https://developers.facebook.com/docs/facebook-login/android#prerequisites
依照裡面內容開始
開啟android studio
在 buid.gradle(moudle) dependencies之前 加入
repositories {
mavenCentral() }之後在 dependencies 裡面加入(依版本修改)
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
將
<string name="facebook_app_id">1756827804568302</string>加入strings.xml
將
<uses-permission android:name="android.permission.INTERNET"/>加入 AndroidManifest.xml.
將
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>加入AndroidManifest.xml. application 底下
利用程式碼抓出hashkey
Code:
PackageInfo info;try{
info = getPackageManager().getPackageInfo("com.you.name",PackageManager.GET_SIGNATURES); for(Signature signature : info.signatures) { MessageDigest md;
md =MessageDigest.getInstance("SHA");
md.update(signature.toByteArray()); String KeyResult =new String(Base64.encode(md.digest(),0));//String something = new String(Base64.encodeBytes(md.digest())); Log.e("hash key", KeyResult);
Toast.makeText(this,"My FB Key is \n"+ KeyResult , Toast.LENGTH_LONG ).show(); }}catch(NameNotFoundException e1){Log.e("name not found", e1.toString());}catch(NoSuchAlgorithmException e){Log.e("no such an algorithm", e.toString());}catch(Exception e){Log.e("exception", e.toString());}
抓到hashKey如圖
貼在您的https://developers.facebook.com/quickstarts/"專案號碼"/?platform=android#
將建立一個class 繼承 Application
@Override public void onCreate() { super.onCreate(); FacebookSdk.sdkInitialize(getApplicationContext()); AppEventsLogger.activateApp(this); }寫入onCreat();
將
<string name="fb_login_protocol_scheme">1756827804568302</string>
寫入string.xml
將 AndroidManifest.xml. application 中加入 android:name=".class名稱"
<uses-permission android:name="android.permission.INTERNET" /> <application android:name=".Today" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" /> <activity android:name=".FacebookActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".LoginActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity> <activity android:name=".MainActivity"></activity> </application> </manifest>
Layout activity_login.xml加入
<com.facebook.login.widget.LoginButton android:id="@+id/login_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" android:layout_marginBottom="30dp" />登入程式
宣告區
public class LoginActivity extends AppCompatActivity { LoginButton loginButton; CallbackManager callbackManager; private AccessToken accessToken;
登陸程式
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { Log.d("成功","成功"); accessToken = loginResult.getAccessToken(); //進入下個頁面 Intent intent =new Intent(LoginActivity.this,MainActivity.class); Toast.makeText(LoginActivity.this,"登入成功", Toast.LENGTH_LONG).show(); startActivity(intent); } @Override public void onCancel() { } @Override public void onError(FacebookException error) { } });
}
加入@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data);}可執行



沒有留言:
張貼留言