Ứng dụng Facebook bằng SNS Gateway trên Bada

Ứng dụng tương tác trên nền Bada giúp người dùng smartphone cập nhật thông tin từ Facebook mọi lúc mọi nơi một cách nhanh chóng và đơn giản.

Để xây dựng một ứng dụng tương tác được với mạng Facebook, bạn cần phải chuẩn bị như sau:

– Đầu tiên là tập tin manifest.xml với các privilege được xác thực bởi Bada. Chi tiết cụ thể tham khảo thêm trong cái tài liệu hướng dẫn của Bada SDK.

– Thứ hai, cần phải có API key và Application secret từ Facebook khi đăng ký viết một ứng dụng cho nó. Hai con số này sẽ được dùng để xác thực khi ứng dụng truy cập đến Facebook.

Xem thêm phần social trong các tài liệu hướng dẫn của bada SDK để biết cách làm cụ thể. Trong ứng dụng này, sử dụng tập tin manifest có sẵn trong ứng dụng mẫu SimpleTwitter của Bada SDK.

Sau khi tạo dự án, tiến hành thêm các thư viện cần thiết, bao gồm: FSocial, FSocialServices, FSocialServicesSnsAuth. Ngoài ra, trong tập tin manifest.xml cần phải thêm privilege là SNS_SERVICE, nếu dùng tập tin manifest.xml của SimpleTwitter thì nó đã được thêm rồi.

Xây dựng ứng dụng tương tác bằng SNS Gateway có 2 bước chính.

– Xác thực ứng dụng Bada với nhà cung cấp dịch vụ. Người dùng nhập username và password để đăng nhập vào Facebook (LoginForm).

– Sau khi đã xác thực, tiến hành truy xuất thông tin người dùng. Ở đây, sẽ chỉ dừng ở mức xem và thay đổi status cá nhân, và xem status của những người trong danh sách bạn bè (FacebookForm).

Lớp LoginForm sẽ có nhiệm vụ xác thực, nên nó sẽ kế thừa từ giao diện ISnsAuthenticatorListener và có một biến thành phần thuộc lớp SnsAuthenticator. Để xác thực ứng dụng với nhà cung cấp dịch vụ bạn phải gọi phương thức SnsAuthenticator::Authenticate(), phương thức này sẽ có 3 tham số lần lượt là:

– ServiceProvider: ở đây bạn truyền vào là “Facebook”.

– ConsumerKey: đây là chuỗi API key có được từ Facebook.

– ConsumerSecret: đây là chuỗi Application secret có được từ Facebook.

Sau khi gọi phương thức này, kết quả sẽ được trả về trong phương thức ISnsAuthenticator::OnSnsAuthenticated (Đây là phương thức bạn phải cài đặt lại khi kế thừa giao diện ISnsAuthenticatorListener). Trong phương thức này, bạn sẽ kiểm tra kết quả xác thực được trả về, nếu xác thực thành công bạn tiếp tục gọi phương thức SnsGateway::AddAuthResult để truyền kết quả đi, và chuyển sang FacebookForm để hiển thị thông tin. Đến đây nhiệm vụ của LoginForm đã kết thúc.

Lớp FacebookForm có nhiệm vụ hiển thị thông tin, nó gồm 3 phương thức cơ bản là: InitBuddyList, UpdateMyStatusText, SetStatusLabel có nhiệm vụ lần lượt là hiển thị danh sách bạn bè, cập nhật status của bạn lên Facebook và hiển thị status hiện thời của bạn

Lớp FacebookManager là lớp trọng tâm của ứng dụng này, nó sẽ chịu trách nhiệm xử lý qua lại giữa LoginForm và FacebookForm cũng như truy xuất thông tin của người dùng từ Facebook. Nó gồm 2 biến thành phần thuộc lớp LoginForm và FacebookForm và thêm một biến thành phần thuộc lớp SnsGateway có nhiệm vụ trao đổi dữ liệu

giữa ứng dụng và Facebook. Lớp SnsGateway có nhiều phương thức hữu ích giúp bạn có thể truy xuất cũng như cập nhật thông tin với Facebook một cách dễ dàng. Trong ứng dụng này chúng ta chỉ truy xuất các thông tin cơ bản, do đó lớp FacebookManager sẽ kế thừa 2 giao diện ISnsGatewayListener (phải có) và ISnsPeopleListener (để truy xuất và cập nhật status).

Ngoài ra còn có thêm 2 giao diện khác mà bạn có thể kế thừa để truy xuất thêm các thông tin khác là ISnsContentListener và ISnsActivityListener. Trong phương thức Contruct của lớp SnsGateway có 4 tham số tương ứng với 4 thể hiện của 4 giao diện này, tuy nhiên ta chỉ dùng 2 trong số đó nên 2 tham số còn lại ta để là null. Việc kế thừa 2 giao diện trên thì đồng nghĩa với việc bạn phải cài đặt lại các phương thức ảo của chúng:

Giao diện ISnsGatewayListener có phương thức OnSnsLoggedInStatusReceived, ở đây ta không sử dụng nó nên phương thức này được để trống.

Giao diện ISnsPeopleListener có 4 phương thức lần lượt là:

– OnMySnsBuddiesReceivedN: được gọi đến khi bạn gọi phương thức SnsGateway::GetMyBuddies để truy xuất danh sách bạn bè, kết quả truy xuất sẽ được trả về trong phương thức này.

– OnMySnsStatusTextUpdated: được gọi đến khi bạn gọi phương thức SnsGateway::UpdateMyStatusText để cập nhật status. Kết quả được server trả về trong phương thức này.

– OnSnsProfileReceivedN: được gọi đến khi phương thức SnsGateway::GetProfile() hoàn tất, kết quả được trả về trong phương thức này. Ở ứng dụng này tôi không dùng nó, nên nó được để trống.

– OnSnsStatusTextReceived: được gọi đến khi bạn gọi phương thức SnsGateway::GetStatusText để lấy status hiện thời của mình, kết quả sẽ được server trả về trong phương thức này.

Bạn có thể tham gia cuộc thi “Samsung bada – Developer challenge” để gửi các ứng dụng dự thi và giành các giải thưởng lên đến 1 tỷ đồng cho người thắng cuộc và gần 1,5 tỷ đồng cho các giải thưởng còn lại.

Tham khảowebsite: http://www.samsungbada.vn/

Leave a Reply

Your email address will not be published. Required fields are marked *