Bắt đầu với SDK Android
SDK Facebook dành cho Android là cách dễ nhất để tích hợp ứng dụng với Facebook. Cách này cho phép:
- Đăng nhập Facebook - Xác thực mọi người bằng các thông tin đăng nhập Facebook của họ.
- Hộp thoại Chia sẻ và gửi - Cho phép chia sẻ nội dung từ ứng dụng của bạn lên Facebook.
- Sự kiện trong ứng dụng - Ghi lại các sự kiện trong ứng dụng.
- API Đồ thị - Đọc và ghi vào API Đồ thị.
Bạn có hai cách thiết lập ứng dụng để sử dụng SDK Facebook:
- Bằng cách sử dụng Bắt đầu nhanh.
- Bằng cách thiết lập dự án của bạn với SDK Facebook.
Bắt đầu nhanh
Để có ID ứng dụng Facebook, hãy cấu hình cài đặt cho ứng dụng của bạn và nhập SDK Facebook, nhấp vào nút bên dưới rồi làm theo hướng dẫn trực tuyến.
Bắt đầu nhanh dành cho Android
Hướng dẫn có liên quan:
Thiết lập Android Studio
Để sử dụng SDK Facebook trong một dự án, hãy thêm SDK dưới dạng phần phụ thuộc bản dựng và nhập SDK.
1. Đi tới Android Studio | Dự án mới | SDK tối thiểu
2. Chọn API 15: Android 4.0.3 trở lên và tạo dự án mới.
3. Sau khi tạo dự án mới, hãy mở
your_app | build.gradle

4. Thêm tệp này vào /app/build.gradle ở cấp mô-đun trước dependencies:
repositories {
mavenCentral()
}5. Thêm phần phụ thuộc biên dịch với phiên bản SDK Facebook mới nhất vào tệp build.gradle:
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.+'
}6. Xây dựng dự án của bạn. Giờ bạn có thể nhập com.facebook.FacebookSdk vào ứng dụng.
Bạn cần khởi tạo SDK Facebook trước khi có thể sử dụng. Thêm lệnh gọi tới FacebookSdk.sdkInitialize từ onCreate trong lớp Application của bạn:
// Add this to the header of your file:
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
public class MyApplication extends Application {
// Updated your class body:
@Override
public void onCreate() {
super.onCreate();
// Initialize the SDK before executing any other operations,
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}Thêm ID ứng dụng Facebook
Sau đó, thêm ID ứng dụng Facebook vào tệp chuỗi của dự án và cập nhật tệp kê khai Android:
1. Mở tệp strings.xml. Đường dẫn mẫu: /app/src/main/res/values/strings.xml.
2. Thêm chuỗi mới với tên facebook_app_id và giá trị như ID ứng dụng Facebook của bạn
3. Mở AndroidManifest.xml
4. Thêm phần tử uses-permission vào tệp kê khai:
<uses-permission android:name="android.permission.INTERNET"/>
5. Thêm phần tử meta-data vào phần tử application:
<application android:label="@string/app_name" ...>
...
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
...
</application>Gửi hình ảnh hoặc video
Nếu bạn đang chia sẻ liên kết, hình ảnh hoặc video qua ứng dụng Facebook dành cho Android, bạn cũng phải nêu rõ FacebookContentProvider trong tệp kê khai.
Thêm id ứng dụng vào cuối giá trị authorities. Chẳng hạn, nếu id ứng dụng Facebook là 1234 thì phần nêu rõ phải có dạng như sau:
<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />Sử dụng SDK với ProGuard
Bạn không phải thực hiện thêm bất kỳ bước nào để sử dụng ProGuard cho SDK Facebook dành cho Android. Để biết hướng dẫn về Proguard, hãy xem phần Trang web dự án công cụ Android, Chạy ProGuard.
Chạy ứng dụng mẫu
Các mẫu sau đi kèm với SDK:
- HelloFacebookSample - Hiển thị quyền truy cập trang cá nhân, cập nhật trạng thái và ảnh tải lên
- RPSSample - Sử dụng hộp thoại Chia sẻ gốc, đăng lên Open Graph, bộ chọn, lời mời và liên kết sâu.
- Scrumptious - Đăng nhập, yêu cầu, bộ chọn, tải ảnh lên và đăng lên Open Graph.
Bạn có thể thử nghiệm các mẫu bằng cách nhập SDK vào dự án Android Studio.
Các mẫu có phần phụ thuộc dự án thay vì phần phụ thuộc kho trung tâm qua trung tâm maven hoặc jcenter. Nhờ vậy, khi bản sao cục bộ của SDK được cập nhật, các mẫu sẽ phản ánh thay đổi.
Để chạy các ứng dụng mẫu nhanh chóng, bạn có thể tạo hash khóa cho môi trường phát triển của mình. Thêm các hash này vào trang cá nhân dành cho nhà phát triển Facebook cho các ứng dụng mẫu. Keytool, dùng để tạo hash khóa, đi kèm với Bộ phát triển SE Java (JDK) mà bạn đã cài đặt trong quá trình thiết lập môi trường phát triển của mình. Bạn hiện có thể tải xuống OpenSSL từ OpenSSL.
Trên OS X, chạy:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Trên Windows, chạy:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Tùy chọn này tạo ra một chuỗi gồm 28 ký tự.
Truy cập trang web nhà phát triển Facebook. Đăng nhập Facebook và sử dụng menu thả xuống ở trên cùng bên phải, đi tới Cài đặt dành cho nhà phát triển:

Trong cài đặt dành cho nhà phát triển, hãy chọn Ứng dụng mẫu từ menu, thêm và lưu hash khóa vào trang cá nhân của bạn:

Bạn có thể thêm nhiều hash khóa nếu phát triển bằng nhiều máy.
Bạn hiện có thể biên dịch và chạy tất cả các mẫu - bao gồm cả những mẫu sử dụng Đăng nhập Facebook.
Tạo hash khóa phát triển
Facebook sử dụng hash khóa để xác thực tương tác giữa ứng dụng của bạn và ứng dụng Facebook. Nếu bạn chạy các ứng dụng sử dụng Đăng nhập Facebook, bạn cần thêm hash khóa phát triển Android vào trang cá nhân dành cho nhà phát triển Facebook.
Đối với phiên bản ứng dụng mà bạn phát hành, bạn cũng cần tạo và đặt Hash khóa phát hành.
Trên OS X hoặc Windows, bạn có thể nhận hash khóa bằng cách tạo hash hay sử dụng giá trị do Settings.getApplicationSignature(Context) trả về. Để biết hướng dẫn, hãy xem phần Chạy ứng dụng mẫu .
Bước tiếp theo
Sau khi cài đặt SDK Facebook dành cho Android và cấu hình ID ứng dụng Facebook, bạn có thể xem:
Đặt hash khóa phát hành
Để xác thực trao đổi thông tin giữa ứng dụng của bạn và Facebook, bạn cần tạo hash khóa phát hành và thêm hash này vào cài đặt Android trong ID ứng dụng Facebook. Nếu không có hash này, tích hợp Facebook có thể không hoạt động bình thường khi bạn phát hành ứng dụng lên cửa hàng.
Trong bước trước, lẽ ra bạn phải cập nhật Cài đặt nhà phát triển Facebook với hash khóa cho môi trường phát triển của mình.
Khi phát hành ứng dụng, ứng dụng thường được ký bằng một chữ ký khác cho môi trường phát triển của bạn. Vì vậy, bạn phải đảm bảo tạo hash khóa phát hành và thêm hash này vào cài đặt Android cho ID ứng dụng Facebook.
Để tạo hash khóa phát hành, hãy chạy lệnh sau trên Mac hoặc Windows để thay thế bí danh khóa phát hành và đường dẫn đến cửa hàng khóa. Trên OS X, chạy:
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Trên Windows, sử dụng:
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Đảm bảo sử dụng mật khẩu bạn đặt khi tạo khóa phát hành lần đầu tiên.
Lệnh này phải tạo ra một chuỗi gồm 28 ký tự. Sao chép và dán Hash khóa phát hành này vào cài đặt Android của ID ứng dụng Facebook.

Bạn cũng nên kiểm tra để đảm bảo cài đặt Android của ID ứng dụng Facebook cũng chứa tên gói chính xác và lớp hoạt động chính cho gói Android.
Sử dụng SDK Facebook với Maven
Bạn có thể nêu rõ phần phụ thuộc Maven với phiên bản mới nhất của SDK Android:
<dependency> <groupId>com.facebook.android</groupId> <artifactId>facebook-android-sdk</artifactId> <version>PUT_LATEST_VERSION_HERE</version> </dependency>
Khắc phục sự cố ứng dụng mẫu
Nếu bạn gặp sự cố khi chạy ứng dụng mẫu thì có thể sự cố này có liên quan đến hash khóa. Bạn có thể gặp một trong các trường hợp sau:
- Hội thoại Đăng nhập gốc xuất hiện nhưng sau khi chấp nhận quyền, bạn vẫn ở trạng thái đăng xuất. Logcat cũng chứa trường hợp ngoại lệ:
12-20 10:23:24.507: W/fb4a:fb:OrcaServiceQueue(504): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id
- Hội thoại Đăng nhập không nguyên gốc xuất hiện với thông báo lỗi: ''..Ứng dụng bị cấu hình sai cho đăng nhập facebook...''.
Kiểm tra hash khóa và đảm bảo sử dụng đúng hash khóa. I
Bạn cũng có thể sửa đổi mã mẫu theo cách thủ công để sử dụng đúng hash khóa. Chẳng hạn như trong lớp HelloFacebookSampleActivity, hãy thực hiện thay đổi tạm thời cho onCreate():
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 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 (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
...Lưu thay đổi và chạy lại mẫu. Kiểm tra đầu ra logcat để tìm thông báo tương tự như thông báo này:
12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=
Lưu hash khóa trong trang cá nhân dành cho nhà phát triển. Chạy lại mẫu và xác minh rằng bạn có thể đăng nhập thành công.