アプリで Facebook 機能を介して共有を作成しようとしています。
Facebook 開発者サイトのチュートリアルに従って、プロジェクトをセットアップすると、ログインが正常に機能します。
ただし、リクエストをより多くの権限で機能させることはできません。アプリからユーザーに代わって投稿できるようにするには、ユーザーに publish_actions 権限を求める必要があります。
たとえば、次のアクティブなセッションがあります。
2014-06-02 10:44:56.729 facebook[68183:60b] activeSession:、expirationDate: 2014-07-28 14:50:04 +0000、refreshDate: 2014-05-30 11:03:01 +0000、AttendedRefreshDate : 0001-12-30 00:00:00 +0000、権限:( インストール済み、「public_profile」)>
共有しようとする私のコードは次のとおりです。
[FBRequestConnection startWithGraphPath:@"me/permissions"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error){
NSDictionary *permissions= [(NSArray *)[result data] objectAtIndex:0];
if (![permissions objectForKey:@"publish_actions"]){
// Permission hasn't been granted, so ask for publish_actions
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error) {
if (!error) {
if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound){
// Permission not granted, tell the user we will not share to Facebook
NSLog(@"Permission not granted, we will not share to Facebook.");
} else {
// Permission granted, publish the OG story
[self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
}
} else {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog(@"Encountered an error requesting permissions: %@", error.description);
}
}];
} else {
// Permissions present, publish the OG story
[self requestWithGraphPath:@"me/feed" andParams:[[NSMutableDictionary alloc] initWithObjectsAndKeys:@"http://www.in.gr",@"url",@"messageTitle",@"Titleos",@"description",@"description", nil] andHttpMethod:@"POST"];
}
} else {
// An error occurred, we need to handle the error
// See: https://developers.facebook.com/docs/ios/errors
NSLog(@"Encountered an error checking permissions: %@", error.description);
}
}];
すでにログインしていますが、追加のアクセス許可を要求しようとすると、追加のアクセス許可を承認するように求めるだけでなく、再度ログインするよう求められます。さらに、再度ログインしても、すべての publish_actions 権限が付与されません。
公開許可に必要な要求を正常に行うにはどうすればよいですか?