14

Tôi có Trang doanh nghiệp trên Facebook (được gọi là Trang người hâm mộ trên Facebook).Các bước để nhận Mã thông báo dài để đăng lên trang Facebook Fan từ máy chủ

Tôi muốn post to that Page bất cứ khi nào người dùng thực hiện một hành động nhất định trên ứng dụng của tôi. Tôi muốn đăng với tư cách Trang riêng thay vì người dùng (tức là từ tài khoản cá nhân của tôi). Bài đăng sẽ đến từ máy chủ bên ngoài của tôi (tôi đang sử dụng restFB).

Tôi đã thực hiện các bước ủy quyền tài khoản cá nhân của mình với các quyền thích hợp cho manage_pages cho Trang. Tôi cũng đã nhận được mã thông báo truy cập cho trang. Tôi thậm chí còn có thể đăng lên trang đó làm trang mà tôi muốn. Vấn đề là mã thông báo mà tôi nhận được (thông qua trình khám phá đồ thị công cụ dành cho nhà phát triển của họ) đã hết hạn một giờ. Tôi cần nó kéo dài lâu hơn thế, tốt nhất là mãi mãi.

Tôi đã xem xét trên Internet, bao gồm SO cho câu trả lời và hầu hết các bài đăng quay lại tài liệu đáng kinh ngạc của FB hoặc tham khảo mơ hồ để gắn ứng dụng bên ngoài của tôi vào ứng dụng facebook và đăng thông qua đó. Tôi đã cố gắng để làm cho công việc đó nhưng tôi bối rối bởi toàn bộ quá trình, khá thẳng thắn (một địa chỉ gọi lại là gì, ví dụ?).

Dù sao, tôi rất muốn xem hướng dẫn từng bước bằng tiếng Anh đơn giản trên getting a long lasting access token mà tôi có thể sử dụng để đăng từ một ứng dụng lên trang Facebook Fan.

Vui lòng không tham khảo tài liệu FB. Thật khủng khiếp. Tôi đã vượt qua nó một chục lần ít nhất.

Cảm ơn bạn.

Trả lời

28

Sau đây là 2 bước bạn có thể làm theo để nhận mã không bao giờ hết hạn cho trang fan hâm mộ của bạn:

  1. Trước hết, bạn cần phải có mã thông báo người dùng truy cập từ lâu sống (mà hạn sử dụng 2 tháng). Để thực hiện việc này, thực hiện cuộc gọi sau:

    GET /oauth/access_token? grant_type=fb_exchange_token& client_id={app-id}& client_secret={app-secret}& fb_exchange_token={short-lived-token} 
    

    Chi tiết khác here. Hãy cho tôi biết nếu bạn tìm thấy bất kỳ khó khăn với điều này.

  2. Lấy thẻ truy cập không bao giờ hết hạn cho trang của bạn bằng cách sử dụng thẻ bạn thu được ở bước trên (không phải là dấu hiệu bình thường, đó là sự khác biệt chính ở đây) -

    $facebook->api("/PAGE_ID?fields=access_token"); 
    

Vì vậy, khái niệm này là rằng: để có được mã thông báo trang dài, bạn nên sử dụng mã thông báo usrr tồn tại trong khi thực hiện cuộc gọi.

+0

Tôi đoán tôi đang nhầm lẫn về ứng dụng id và ứng dụng bí mật. Làm cách nào để thiết lập ứng dụng facebook cho trang? Ứng dụng facebook làm gì? Có cần thiết phải cập nhật trang fan hâm mộ không? – Ichorus

+0

Có bạn cần một ứng dụng facebook. Không có ứng dụng facebook như vậy cho trang, chỉ đơn giản ứng dụng facebook mà bạn có thể tạo từ đây: http://developers.facebook.com/apps –

+0

Cảm ơn bạn. Tôi đã nhận được nó làm việc với lời khuyên của bạn và Sebastian C. Tôi muốn tôi có thể cung cấp cho bạn cả hai phần thưởng. – Ichorus

12

@Shadowfax hoàn toàn đúng. Chỉ cần hoàn thành quy trình làm việc:

  1. Nhận quyền truy cập người dùng ngắn hạn bằng đăng nhập facebook và với sự cho phép manage_pages.
  2. Gửi access_token sử dụng ngắn hạn này đến máy chủ của bạn
  3. Từ máy chủ, thực hiện yêu cầu @Shadowfax:

    GET /oauth/access_token? grant_type=fb_exchange_token&client_id={your-app-id}& client_secret={your-app-secret}&fb_exchange_token={short-lived-user-access_token}

    với chủ nhà graph.facebook.com và cổng 443.

    Bạn phải thực hiện yêu cầu này từ máy chủ vì nó chứa khóa bí mật ứng dụng của bạn.

  4. Từ máy chủ, bây giờ bạn có thể truy vấn facebook bằng cách thay thế người dùng access_token của thành viên này phiên bản dài sống

  5. Từ máy chủ, được trang access_token bằng cách sử dụng access_token sử dụng dài sống của bạn, hoặc bằng cách truy vấn tài khoản người dùng:

    GET /{user-id}/accounts?access_token={long-live-token}

    Bạn sẽ có được tất cả các trang của người dùng với id và access_token của họ.

    Hoặc bạn có thể truy vấn trực tiếp các trang cụ thể nếu bạn đã biết page_id nó

    GET /{page-id}/?fields=access_token&access_token={long-live-token}

Như @Shadowfax nói, này trang dài sống dấu hiệu sẽ tồn tại mãi mãi, chừng nào người dùng (bạn) không thu hồi quyền ứng dụng của bạn.

+0

Một số lỗi đánh máy tôi đoán: 2 tháng *. Và tôi không thể cập nhật mã thông báo dài hạn mà tôi đoán, vì OP cần mã thông báo của trang người hâm mộ, mã thông báo này sẽ không bao giờ hết hạn trong tương lai. (chỉ cần một lần truy vấn) –

+0

cảm ơn lỗi đánh máy! Tôi đoán anh ta sẽ cần user_token dài 'admin_user', bạn không nghĩ sao? –

+0

Có, nhưng chỉ trong một thời gian. Đó là truy vấn một lần để nhận mã thông báo của trang người hâm mộ –