2012-10-16 46 views
24

Trong ứng dụng của tôi, người dùng mở một WebView đến phiên bản di động của trang hồ sơ facebook (http://m.facebook.com/some_page). Vấn đề của tôi là khi mở WebView, người dùng được yêu cầu nhập tên người dùng và mật khẩu cho Facebook. Vì tôi đã có một mã thông báo truy cập Facebook thông qua FB SDK và người dùng có thể đã cài đặt ứng dụng Facebook, tôi cho rằng có một số cách để bỏ qua giai đoạn khó chịu này khi đăng nhập vào Facebook khi mở WebView.Cách sử dụng mã thông báo truy cập Facebook trong ứng dụng android webview

Nói cách khác, làm cách nào để sử dụng mã thông báo truy cập mà tôi đã có trong ứng dụng WebView của ứng dụng?

+2

thấy điều này: http://stackoverflow.com/questions/10101030/facebook-authentication-in-webview?rq=1 –

+0

thx ZuzooVn, nhưng liên kết không phải là có câu trả lời những gì tôi muốn. Tôi muốn konw rằng nếu cách (sử dụng mã thông báo truy cập đã có trong WebView của ứng dụng) có thể làm việc hay không – joy

+0

bạn đã thử tut tại nhà phát triển fb https://developers.facebook.com/docs/mobile/android/build/ –

Trả lời

1

Từ hiểu biết của tôi, bạn không thể. Mã thông báo truy cập bạn nhận được cho ứng dụng của mình chỉ có thể được sử dụng cùng với thông tin đăng nhập API của Ứng dụng của bạn. I E. mã thông báo truy cập chỉ hoạt động trong các cuộc gọi cũng chứa khóa và bí mật của ứng dụng của bạn. Thậm chí nếu bạn có thể tìm ra cách để chuyển chúng vào một WebView (có lẽ không được che phủ bởi FB's Data Policies), bạn có thể phải làm cho WebView giả vờ sử dụng SDK Android (vì FB sẽ kiểm tra nguồn của cuộc gọi). Đó là lý do tại sao tôi đề nghị bạn không thể.

Bạn cũng không thể có WebView sử dụng cookie của người dùng có thể có trong trình duyệt chứng khoán của mình, vì mỗi WebView đều có ngữ cảnh riêng vì lý do bảo mật.

Nếu bạn thường xuyên sử dụng WebView cho FB trong ứng dụng của mình, bạn có thể kéo cookie xác thực ra khỏi WebView đầu tiên, sau đó chèn nó vào các phiên bản tiếp theo bằng cách sử dụng CookieSyncManager. Hoặc bạn có thể lưu trạng thái cá thể của WebView đầu tiên và sau đó sử dụng lại nó. Đây chỉ là những ý tưởng có thể có hoặc không hoạt động; Tôi chưa kiểm tra chúng.

+2

Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn, sử dụng cookiemanager là công việc, như bạn đã nói, mỗi lần webview laod url tôi phải thêm cookie có được cùng một lúc nhận được mã thông báo truy cập. ví dụ wb = (WebView) this.findViewById (R.id.share_wb); Chuỗi url = "http://m.facebook.com/sharer.php?u=www.douban.com"; CookieSyncManager.createInstance (điều này); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setCookie (url, Facebook.cookieString); CookieSyncManager.getInstance(). Sync(); wb.loadUrl (url); – joy

1

Bạn có thể lưu trữ riêng AccessToken đó trong Thuộc tính và kiểm tra xem bạn có sử dụng chế độ xem web sau đó vượt qua accessToken đó và khi người dùng sử dụng Ti.Facebook rồi sử dụng một AccessToken khác.

-2

đọc dự án này một cách cẩn thận và cố gắng ... Tôi cố gắng ví dụ này trong dự án của tôi ..It làm việc ..

Bu trước khi bạn dùng ví dụ này, bạn phải tạo một trang trong facebook và nhận được một dành cho ứng dụng id, để sử dụng trong dự án này

https://github.com/ddewaele/AndroidFacebookSample

+1

Điều này dường như chỉ là một tích hợp Facebook chung (và một bằng cách sử dụng API cũ tại đó) - điều này không sử dụng WebViews ở bất kỳ đâu. –

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