2012-05-07 45 views
8

CHỈNH SỬA từ @ avs099: Tôi đang bắt đầu tiền thưởng trên bài đăng này vì tôi có cùng một vấn đề chính xác. Tôi tóm tắt vấn đề ở đây và để lại bài đăng mà không có bất kỳ thay đổi nào ở dưới cùng để tham khảo.Mã thông báo truy cập Facebook hết hạn vì lý do không rõ


gì chúng ta có: Facebook thẻ truy cập trang, thu được như mô tả ở đây: Authenticating as a Page và đó sống đã được mở rộng đến 60 ngày với fb_exchange_token yêu cầu mới.

Vấn đề là gì: mã thông báo này hoạt động trong một thời gian - đôi khi tôi có thể đăng hàng trăm ảnh lên trang người hâm mộ của mình trong khoảng thời gian vài ngày; đôi khi nó là nghĩa đen vài hình ảnh - và sau đó tôi bắt đầu nhận được một trong hai

(OAuthException) Lỗi hủy bỏ hiệu lực access token: Phiên họp đã được bị vô hiệu vì người dùng đã thay đổi mật khẩu.

hoặc

(OAuthException) Lỗi hủy bỏ hiệu lực access token: phiên làm phiên lưu trữ không trận đấu hiện tại. Điều này có thể do người dùng đã thay đổi mật khẩu kể từ khi phiên được tạo hoặc Facebook đã thay đổi phiên vì lý do bảo mật.

ngoại lệ từ Facebook - nhưng tất nhiên tôi không thay đổi mật khẩu hoặc hủy cấp phép ứng dụng.

thông tin bổ sung: Không chắc nếu có vấn đề nhưng:

  1. Đôi khi tôi bắt đầu sử dụng vài ngày thẻ sau khi tôi yêu cầu nó từ Facebook
  2. Mã được yêu cầu (bằng C# backend) từ máy chủ được đặt ở một khu vực địa lý khác với ứng dụng trên máy tính để bàn để đăng ảnh lên trang người hâm mộ.
  3. Nó xảy ra đôi khi rằng các ứng dụng máy tính để bàn khác nhau đăng ảnh từ máy tính khác nhau (ví dụ: IP khác nhau tôi đoán)

Bất kỳ ai có một đầu mối những gì đang xảy ra và cách giải quyết này?

Cảm ơn bạn.


Tôi có một ứng dụng facebook phục vụ hai mục đích:

1) Cho phép người dùng facebook kết nối với trang web của tôi 2) Cho phép trang web của tôi để gửi đến trang web của tôi facebook fan page tường

Những gì tôi quan tâm là việc sử dụng thứ 2. Tôi sử dụng để có thể thiết lập các điều khoản cho một ứng dụng trên một trang fan hâm mộ để chỉ cho phép gửi bài (thông qua sdk php) mà không có bất kỳ mối quan tâm về một mã thông báo truy cập. Bây giờ tôi đã tạo một số trang người hâm mộ mới và chức năng đó dường như đã bị xóa.Được rồi, vì vậy tôi đã trải qua toàn bộ quá trình nhận mã thông báo truy cập (thành công) cho người dùng (luôn là tôi hoặc quản trị viên khác của trang người hâm mộ facebook của tôi) và sử dụng mã thông báo đó để nhận mã thông báo truy cập cho các trang người hâm mộ tôi quản lý (tôi có quyền manage_pages và các quản trị viên khác cho các trang tôi muốn đăng lên). Tuy nhiên, do công cụ xung quanh đăng nội dung lên trang người hâm mộ của tôi, các mã thông báo lỗi đã hết hạn với một trong hai thông báo lỗi:

Lỗi mã thông báo truy cập không hợp lệ: Phiên không khớp với phiên được lưu trữ hiện tại. Điều này có thể do người dùng đã thay đổi mật khẩu kể từ khi phiên được tạo hoặc Facebook đã thay đổi phiên vì lý do bảo mật.

hoặc

OAuthException: Lỗi không hợp lệ mã thông báo truy cập: Phiên đã bị vô hiệu vì người dùng đã thay đổi mật khẩu.

Nhưng đây không phải là mã thông báo truy cập phụ thuộc vào người dùng bên ngoài, chỉ người nội bộ (tôi và một người khác ngay bây giờ). Chúng tôi không thay đổi mật khẩu hoặc làm bất cứ điều gì. Tôi thậm chí đã thử nghiệm nó bằng cách đăng xuất khỏi facebook sau khi mua thẻ và nó hoạt động tốt. Chỉ sau một lúc họ hết hạn mà không có lý do gì mà tôi có thể xác định. Khi tôi nhận được thẻ, tôi có thể kiểm tra chúng trên công cụ gỡ lỗi và chúng được cho là kéo dài 60 ngày (theo tài liệu) mặc dù công cụ cho biết chúng không bao giờ hết hạn.

Tôi đã thiết lập hệ thống để khi không đăng lên trang, tôi nhận được email có liên kết tới trang web của tôi để cập nhật mã thông báo.

Bất kỳ ai có manh mối gì đang xảy ra?

+0

Có bất kỳ người dùng nào bị khóa bảo mật từ Facebook không? điều này làm tròn các mã thông báo giống như cách thay đổi mật khẩu – Igy

+0

hmm ... chính xác thì "khóa bảo mật" là gì? Nếu tôi nhập sai mật khẩu của mình - đó có phải là trường hợp không? Tôi không nhớ bất kỳ hoạt động bất thường nào - vì vậy rất có thể câu trả lời là "không". Nếu tôi cung cấp cho bạn mã thông báo đã hết hạn - bạn có thể theo dõi lịch sử của nó và tìm ra lý do tại sao nó bị hủy không? – avs099

+0

Tôi chưa bao giờ có thể giải quyết hoàn toàn vấn đề này nhưng dường như có ít nhất là giảm bớt. Tôi thiết lập máy chủ của mình để gửi email cho tôi nếu mã thông báo hết hạn với một liên kết đến trang tạo mã thông báo mới và lưu chúng trong db. Các mã thông báo đã không hết hạn bí ẩn trong một ít nhất một tuần bây giờ mặc dù. – JewrassicPark

Trả lời

0

Tôi gặp vấn đề tương tự trong ứng dụng của mình - đôi khi mã thông báo hết hạn.

Một trong những lý do tìm thấy: đôi khi ứng dụng của tôi yêu cầu mã thông báo mới trong khi mã thông báo cũ hợp lệ và FB trả về lỗi hoặc tôi không thể lưu mã thông báo mới vì một lý do nào đó. Sau khi mã thông báo cũ hết hạn - chỉ một mã thông báo cho ứng dụng người dùng ghép đôi có thể hợp lệ.

0

Bạn có thể tìm nạp mã thông báo không được ủy quyền để mã thông báo mới được yêu cầu (hoặc bất kỳ mã nào bạn thích).

tôi có thể cung cấp một lời giải thích tốt đẹp, nhưng bạn có thể đọc tất cả ở đây: https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/

+0

câu hỏi là "tại sao mã thông báo hết hạn", chứ không phải "cách xử lý" – avs099

2

Như Mikhail chỉ ra, nếu bạn nhận được báo cáo một lỗi mà các mã thông báo là sử dụng nguyên nhân hợp lệ đã thay đổi mật khẩu. Tỷ lệ là bạn đang yêu cầu một mã thông báo mới ở một nơi nào đó ẩn trong mã, khi bạn đã có một hợp lệ.

0

Giải pháp tạm thời là yêu cầu người dùng xóa ứng dụng khỏi hồ sơ của nó và cho phép lại.

0

Tôi đã gặp sự cố tương tự và giải quyết nó "cài đặt lại ứng dụng cho người dùng ứng dụng facebook". nó có thể giúp bạn nếu không có gì trả lời cho vấn đề.

Để làm điều đó:

  1. facebook người dùng đang đối mặt với vấn đề đi vào trang facebook của mình
  2. anh/cô ấy loại bỏ ứng dụng của bạn từ danh sách ứng dụng của ông/bà.
  3. Thử lại để đăng nhập qua facebook sdk trên Android.
Các vấn đề liên quan