2012-06-13 24 views
6

Tôi đang tương tác với dịch vụ APEX tùy chỉnh rõ ràng yêu cầu xác thực OAuth. Tôi có thể dễ dàng xác thực và ủy quyền đơn đăng ký của mình. Mọi thứ đều hoạt động tốt.Không refresh_token trong Phản hồi OAuth của SalesForce

Tuy nhiên, mã thông báo truy cập tôi nhận được có xu hướng hết hạn.

Tất nhiên, tôi có thể làm mới bằng cách gửi tệp refresh_token. Âm thanh tuyệt vời.

Vấn đề là tôi không nhận được refresh_token trong phản hồi từ SalesForce.

Tôi gửi yêu cầu tới [instance] .salesforce.com/services/oauth2/token, tôi cũng đã cố gắng sử dụng login.salesforce.com/services/oauth2/token, nhưng tôi không thể tìm thấy 'refresh_token' trong phản hồi . Có tất cả mọi thứ ngoài nó ở đó! ..

+0

bạn đang sử dụng luồng oauth nào? uri gọi lại của bạn là gì? – superfell

+0

@superfell Mọi thứ đều chính xác, ngoài phạm vi. Xem câu trả lời của tôi dưới đây. Dù sao cũng cảm ơn bạn :)! –

Trả lời

4

Tôi đã giải quyết được vấn đề nhờ đồng nghiệp tuyệt vời của tôi.

Tôi nên thêm 'refresh_token' vào phạm vi khi truy xuất mã xác thực.

+3

Trên thực tế, refresh_tokens không (hoặc không còn) được phát ra trừ khi bạn đang tạo ứng dụng dành cho thiết bị di động hoặc ứng dụng In-SalesForce. Xem http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com và tìm kiếm "Lưu ý rằng refresh_token chỉ được gửi nếu một trong các trường hợp sau đây là". Tôi tìm thấy điều này sau 4 giờ cố gắng tìm ra lý do tại sao nó không cho tôi một. :) Tôi vui mừng được chứng minh là sai, mặc dù .. – Anthony

+1

Bạn đã bao giờ làm việc này chưa? Tôi không nhận được mã thông báo làm mới mặc dù cài đặt phạm vi. –

+0

Bên cạnh đó 'refresh_token' không phải là phạm vi nhưng 'offline_access' là .. –

9

Vui lòng kiểm tra phần "Phạm vi OAuth đã chọn", cần phải được bật "Thực hiện yêu cầu thay cho bạn bất kỳ lúc nào" để nhận mã thông báo làm mới. tạo ==> Ứng dụng ==> API (Bật cài đặt OAuth) ==> Phạm vi OAuth được chọn.

+2

Tôi không chắc tại sao phạm vi "Toàn quyền truy cập (đầy đủ)" là không đủ ... nhưng không phải vậy. Bạn cũng phải làm như trên. Cám ơn rất nhiều. – barclay

+1

Đây phải là câu trả lời được chấp nhận. – Detached

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