2012-06-21 38 views
5

Tôi đang làm việc trên một ứng dụng mà tôi cần tích hợp chức năng xã hội của Facebook.Cách kết nối với facebook trong ứng dụng Android

Trong ứng dụng của tôi có một nút kết nối người dùng với hồ sơ Facebook của anh ấy. Khi người dùng nhấn nút này tôi chỉ mở một webview với trang Facebook, với trang Facebook của người dùng. Bây giờ hãy nói rằng tôi biết email và mật khẩu của anh ấy và tôi muốn kết nối anh ấy tự động, rằng anh ấy không phải nhập email và mật khẩu của mình mỗi lần. Tôi đã cố gắng giải quyết nó ném question tiếp theo của mình, nhưng như bạn có thể thấy không thành công.

Tôi cũng đã thử sử dụng cookie với CookieSyncManager, CookieManager và xử lý thủ công.

Tôi nghĩ rằng tôi có thể giải quyết nó bằng cách thay đổi url mà tôi gửi đến webView, nhưng tôi không biết url nào. (đã thử http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.phphttp://www.facebook.com/plugins/login.php và sau đó nối URL của trang Facebook của người dùng, ví dụ http://www.facebook.com/UserProfile)

Tôi thực sự đánh giá cao sự trợ giúp nào!

Cảm ơn.

+0

Bạn đang sử dụng Android SDK? https://developers.facebook.com/docs/mobile/android/sso/ –

+0

@Ahmed Nuaman Có Tôi đang sử dụng Facebook SDK và cũng đã cố gắng sử dụng một lần đăng nhập. Hãy xem [câu hỏi tiếp theo] của tôi (http://stackoverflow.com/questions/11117516/move-to-the-facebook-application-page-after-authenticate-through-single-sign-on) –

Trả lời

2

Có một cách để sử dụng xác thực SDK thay vì SSO như đã thảo luận ở đây: How to disable Facebook single sign on for android - Facebook-android-sdk.
Nhưng tôi nghĩ rằng nó chỉ dẫn đến trải nghiệm người dùng tồi vì người dùng sẽ cần phải nhập email/mật khẩu của mình mà không phải là một nhiệm vụ thú vị để làm với hầu hết các thiết bị di động.

Nếu người dùng đã cài đặt ứng dụng Facebook (katana) (có nghĩa là sử dụng SSO), thì bạn có thể chỉ cần mở nó bằng hồ sơ người dùng bằng cách sử dụng mục đích.
Tôi chưa bao giờ thực hiện nó trước, nhưng từ hai chủ đề sau đây:
launch facebook app from other app

Open a facebook page from android app
có vẻ như bạn có thể làm điều gì đó như:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity"); 
this.startActivity(intent); 
0

Để kết nối với facebook, trước tiên bạn phải tìm hiểu Oauth. Oauth là xác minh một lần để truy cập thông tin chi tiết về facebook. Mật khẩu không yêu cầu mọi lúc. Đi qua số này documentation.

Và điều này document cũng hữu ích cho bạn.

+0

Tôi sử dụng đăng nhập một lần, đó là ý của bạn trong Oauth? –

+0

Đối với tha đầu tiên bạn phải học OAuth đầy đủ. OAuth là quá trình đăng nhập một lần để nhận dữ liệu từ người dùng cụ thể. – Akilan

+0

Tôi không cần bất kỳ dữ liệu người dùng nào, tôi chỉ cần mở trình duyệt bằng trang facebook của anh ấy. Tôi đã sử dụng một lần đăng nhập, nhưng vấn đề là tôi không thể chuyển hướng anh ta đến trang hồ sơ của anh ấy. –

4

Bạn không thể đăng nhập bằng tay người dùng vào facebook. Đó là toàn bộ điểm của oAuth, quy trình phải minh bạch cho ứng dụng của bạn và khi người dùng hoàn tất xác thực, ứng dụng của bạn sẽ chỉ nhận được một AccessToken.

Từ thời điểm đó, AccessToken có thể vẫn hoạt động với bạn gần như bao giờ hết.

Nó sẽ là không hợp lệ khi:

  1. phiên hết hạn

    Điều này có thể được giải quyết bằng cách thêm một cuộc gọi đến onResume() của bạn giả sử bạn đang sử dụng Facebook Android SDK để xác thực/lồng ghép các facebook . Khi cuộc gọi này thành công, mã thông báo của bạn sẽ có giá trị trong 60 ngày.

    public void onResume() {  
        super.onResume(); 
        facebook.extendAccessTokenIfNeeded(this, null); 
    } 
    
  2. tài khoản thay đổi mật khẩu của mình

  3. tài de-cho phép ứng dụng của bạn

  4. bản ghi tài khoản ra khỏi Facebook

    Bạn có thể làm gì về ba các trường hợp! Mã thông báo của bạn sẽ bị vô hiệu và bạn sẽ phải yêu cầu người dùng xác thực lại bằng luồng thông thường.

Follow this tutorial to integrate Facebook inside your Android app

+0

Cảm ơn câu trả lời của bạn. Tôi đã làm nó chính xác như trong hướng dẫn này và tôi nhận được mã thông báo truy cập. câu hỏi của tôi là nếu tôi có thể chuyển hướng người dùng đến trang Facebook theo lựa chọn của tôi sau khi anh ấy đã được xác thực bằng mã thông báo truy cập - mã thông báo hợp lệ của khóa học. –

+0

Có khả năng vô hiệu hóa SSO không? Đây sẽ là một giải pháp. Nếu không, điều này không thể thực hiện được vì (nếu tôi nhớ lại chính xác) ứng dụng facebook không yêu cầu một WebView để người dùng đăng nhập. –

+0

và nếu tôi chỉ muốn mở trang Facebook của tôi theo cách khác, không có trong webView? cho phép nói ứng dụng Facebook hoặc cách khác. Một lần nữa để làm cho nó rõ ràng, tôi có mã thông báo truy cập và anh ta là hợp lệ. Tôi muốn mở một trang Facebook với sự xác thực của người sử dụng, rằng anh ta có thể thực hiện các hành động như một người dùng đã đăng ký và không cần nhập mật khẩu và email của mình nữa. –

Các vấn đề liên quan