2012-02-01 32 views
10

(Disclaimer: Các access_tokens và appIds trong bài viết này là giả mạo và chỉ nhằm nhìn thực)Facebook OAuth access token khác nhau khi sử dụng Graph API Explorer

Tôi đang cố gắng để tạo ra một access_token sử dụng cuộc gọi như sau:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=123456789000000&client_secret=03252f2ff1eddffe234a0dc7256abb8c

Điều đó mang lại cho tôi một access_token ở định dạng này:

access_token = 123456789000000 | TR528Smvi4AXMM21Zhmi5XmJw mk

Nếu tôi cố gắng truy cập vào một trang fan hâm mộ đó là bảo vệ với thẻ như thế này tôi nhận được lại sai: http://graph.facebook.com/109813019043531?access_token=123456789000000|TR528Smvi4AXMM21Zhmi5XmJwmk

Bây giờ, nếu tôi sử dụng Graph API Explorer và chọn App giống như một tôi sử dụng ở trên để tạo mã thông báo truy cập tôi nhận được một thẻ truy cập mà trông như thế này:

ABBDSqE43jFSSbrS7ujvyLZClfyKDCZBhAuLXTtr9nwelj4MFwlijzejljEoNItC3lijzm3shemzq3jDFCdAZD

Nếu tôi sử dụng access token để truy cập URL (http://graph.facebook.com/109813019043531) nó hoạt động như mong đợi.

Câu hỏi của tôi là, sự khác nhau giữa hai cách và làm cách nào tôi có thể tạo ra một lập trình hoạt động giống như mã thông báo thứ hai?

+4

Chỉ cần một lưu ý - một nên ** KHÔNG BAO GIỜ * * đăng 'bí mật ứng dụng' hoặc' mã thông báo truy cập'. Với thông tin đó, ai đó có thể mạo danh bạn, ứng dụng của bạn hoặc trang của bạn và thực hiện một số hành động nguy hiểm. Tôi đã xóa dữ liệu nhạy cảm khỏi bài đăng của bạn. Hãy lưu ý điều này trong tương lai. – Lix

+0

Tôi đã nhận thức được điều đó, và những người không nhạy cảm. Tôi chỉ cố gắng minh họa chính xác định dạng mã thông báo vì có liên quan đến câu hỏi của tôi. Đó không phải là bí mật ứng dụng thực hoặc mã thông báo truy cập. Chúng tôi đang ngẫu nhiên đẩy các phím trên bàn phím của tôi :-) – gplocke

+1

Trông thật với tôi: $ hehe ... Tôi sẽ quay lại bản chỉnh sửa ... – Lix

Trả lời

13

Mẫu đầu tiên bạn hiển thị là mã thông báo truy cập APP. Thứ hai từ Graph API Explorer là mã thông báo truy cập USER. Có loại thứ ba được gọi là mã thông báo truy cập PAGE. Mỗi cái khác nhau.

Mã thông báo truy cập APP được sử dụng để nhận thông tin mà ứng dụng của bạn có đặc quyền truy cập. Và trong một số trường hợp publish_stream được cấp từ người dùng ứng dụng, bạn có thể sử dụng nó để đăng lên tường của người dùng đó mà không cần mã thông báo truy cập USER.

Mã thông báo truy cập của USER được cung cấp cho ứng dụng của bạn và chúng liên quan đến quyền mà người dùng ứng dụng cụ thể đã cấp cho ứng dụng của bạn để ứng dụng của bạn có thể hành động thay mặt họ.

Mã thông báo truy cập PAGE được cấp cho quản trị viên trang để họ có thể hành động thay mặt cho trang. Để chuyển từ mã thông báo truy cập của người dùng sang mã thông báo truy cập trang, hãy gọi /me/accounts bằng mã thông báo truy cập của người dùng để nhận danh sách các trang mà họ quản trị cùng với từng mã thông báo truy cập trang.

Nếu bạn có một thẻ truy cập và bạn muốn biết thêm thông tin về nó, lint nó ở https://developers.facebook.com/tools/lint

Để biết thêm thông tin về thẻ truy cập xem: https://developers.facebook.com/docs/authentication

+2

cách người dùng lấy 'mã thông báo truy cập USER'? –

+1

Trong đối tượng authResponse của javascript, sẽ có một mã thông báo truy cập người dùng. bạn nhận được authResponse từ việc gọi FB.getLoginStatus(). Xem http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/ để biết thêm thông tin. – DMCS

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