Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我得到了一个错误;错误重新授权失败原因会话关闭“;使用iOS Facebook SDK_Ios_Facebook_Publish Actions - Fatal编程技术网

我得到了一个错误;错误重新授权失败原因会话关闭“;使用iOS Facebook SDK

我得到了一个错误;错误重新授权失败原因会话关闭“;使用iOS Facebook SDK,ios,facebook,publish-actions,Ios,Facebook,Publish Actions,我在iOS应用程序上使用facebook sdk登录并分享故事 在Facebook上分享故事的功能正常工作,但今天却不起作用。我不知道为什么它不工作,因为没有与该特性相关的代码更改 以下是请求发布操作权限的代码 // Request publish_actions [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] defaultAudienc

我在iOS应用程序上使用facebook sdk登录并分享故事

在Facebook上分享故事的功能正常工作,但今天却不起作用。我不知道为什么它不工作,因为没有与该特性相关的代码更改

以下是请求发布操作权限的代码

// Request 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 publish
            } else {
            // Permission granted
            }
        } else {
            NSLog(@"DEBUG: error = %@", error);
            // There was an error, handle it
            // See https://developers.facebook.com/docs/ios/errors/
        }
}];
错误消息如下:

Domain=com.facebook.sdk code=2“操作无法完成。com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed”
UserInfo=0xXXXXXXXXX{
com.facebook.sdk:ErrorLoginFailedReason=
com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed,
NSLocalizedFailureReason=
com.facebook.sdk:ErrorReauthorizeFailedReasonSessionClosed,
com.facebook.sdk:ErrorSessionKey=…>

}
您可以使用FBSDKAccessToken

 if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {

            [self doShare];
        } else {
            FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
            [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                if (error) {
                    // Process error
                } else if (result.isCancelled) {
                    // Handle cancellations
                } else {
                    // If you ask for multiple permissions at once, you
                    // should check if specific permissions missing
                    if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                        // Do work

                        [self doShare];

                    }
                }
            }];
        }
其中doShare

-(无效)doShare{


FBSDKAccessToken是Facebook SDK 4.x版本吗?我的是3.18。是的,它是4.x:),你应该使用它更多easier@MasterHong你解决问题了吗?如果你还需要帮助,请告诉我。我发现我已经拥有发布权限,但“requestNewPublishPermissions”方法告诉我没有授予发布权限。所以我只是忽略了它,只是上传了故事,然后它就工作了。谢谢你的回复@Omarj
NSString *url = [NSString stringWithFormat:@"http://example.com/locations/%d",1];
NSDictionary *properties = @{

                             @"your action" :url
                             };
[[[FBSDKGraphRequest alloc]
  initWithGraphPath:@"me/example-staging:something"
  parameters: properties
  HTTPMethod:@"POST"]
 startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
     if (!error) {
         // NSLog(@"Post id:%@", result[@"id"]);

     }
 }];