Tôi có dịch vụ phụ trợ sẽ đăng nhập tôi trong ứng dụng và trả lại mã thông báo mở rộng từ lần đăng nhập trước đó, có thể từ thiết bị khác (vì vậy không có thông tin xác thực được lưu trong thiết bị này). Tôi muốn sử dụng mã thông báo này để bắt đầu một phiên Facebook. Tôi đang sử dụng một cái gì đó như:Mở FBSession với dữ liệu Token hiện tại trên iOS
FBSession* session = [[FBSession alloc] initWithPermissions:@[@"publish_actions"]];
FBAccessTokenData* tokenData =
[FBAccessTokenData createTokenFromString:token
permissions:@[@"publish_actions"]
expirationDate:nil
loginType:FBSessionLoginTypeTestUser
refreshDate:nil];
[session openFromAccessTokenData:tokenData completionHandler:nil];
Tôi đây đi 'nil' cho rõ ràng, trong mã của tôi, tôi đang xử lý hoàn tất và loggin đối tượng phiên trở lại mà dường như trong trạng thái mở với không có lỗi. Khi tôi thử và sử dụng phiên, tôi gặp lỗi như:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xb8b1680 {com.facebook.sdk:HTTPStatusCode=403, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 200;
message = "(#200) The user hasn't authorized the application to perform this action";
type = OAuthException;
};
};
code = 403;
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0xa2b62a0, state: FBSessionStateOpen, loginHandler: 0xa29e9b0, appID: 131721883664256, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0xa273f60>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2013-07-26 16:21:10 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
email,
"publish_actions"
)>}
Mọi đề xuất ...?
Cách tiếp cận này hoạt động tốt trong phiên bản sdk 3.21.1. Có thể là mã thông báo không được tạo ra từ FBSessionLoginTypeTestUser và đó là lý do tại sao nó nói rằng người dùng không được ủy quyền. –