Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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--无法请求用户的登录权限,错误代码6_Ios_Objective C_Facebook_Facebook Graph Api_Social Framework - Fatal编程技术网

从iOS将视频上载到facebook--无法请求用户的登录权限,错误代码6

从iOS将视频上载到facebook--无法请求用户的登录权限,错误代码6,ios,objective-c,facebook,facebook-graph-api,social-framework,Ios,Objective C,Facebook,Facebook Graph Api,Social Framework,我正在使用iOS 6中的社交框架将facebook视频上传集成到我的应用程序中。但是,当我运行程序时,不会发生任何事情,而是收到以下错误: 无法完成该操作。(com.apple.accounts错误6) “活动访问令牌必须用于查询有关当前用户的信息。”,“类型”:“OAutheException”,“代码”:2500}” 下面是我的代码,我从中实现了前半部分。grated设置为false,导致第一个错误 - (void)uploadToFb { ACAccountStore *acco

我正在使用iOS 6中的社交框架将facebook视频上传集成到我的应用程序中。但是,当我运行程序时,不会发生任何事情,而是收到以下错误:

无法完成该操作。(com.apple.accounts错误6)

“活动访问令牌必须用于查询有关当前用户的信息。”,“类型”:“OAutheException”,“代码”:2500}”

下面是我的代码,我从中实现了前半部分。
grated
设置为
false
,导致第一个错误

- (void)uploadToFb {

    ACAccountStore *accountStore = [[ACAccountStore alloc] init];

    ACAccountType *facebookAccountType = [accountStore
                                          accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

    // Specify App ID and permissions
    NSDictionary *options = @{
                               ACFacebookAppIdKey: @"2************",
                               ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"],
                               ACFacebookAudienceKey: ACFacebookAudienceFriends
    };

    [accountStore requestAccessToAccountsWithType:facebookAccountType
                                          options:options completion:^(BOOL granted, NSError *e) {

          if (granted) 
          {
              NSArray *accounts = [accountStore accountsWithAccountType:facebookAccountType];
              facebookAccount = [accounts lastObject];
          }
          else
          { 
           NSLog(@"Error %@", e.localizedDescription);                                              }

          }
    }];

    NSURL *videourl = [NSURL URLWithString:@"https://graph.facebook.com/me/videos"];

    NSString *filePath = [outputURL path];
    NSURL *pathURL = outputURL;
    NSData *videoData = [NSData dataWithContentsOfFile:filePath];

    NSDictionary *params = @{
    @"title": @"Face Puppets Video",
    @"description": @"A funny video I made with the #FacePuppets iOS app."
    };

    SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                  requestMethod:SLRequestMethodPOST
                                                            URL:videourl
                                                     parameters:params];
    [uploadRequest addMultipartData:videoData
                           withName:@"source"
                               type:@"video/quicktime"
                           filename:[pathURL absoluteString]];

    uploadRequest.account = facebookAccount;

    [uploadRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
        NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
        if(error){
            NSLog(@"Error %@", error.localizedDescription);
        }else
            NSLog(@"%@", responseString);
    }];
}

NSURL*videourl
之后的所有代码都应移动到另一个方法。当前,当
requestAccessToAccountsWithType:
请求正在进行时,它正在执行,因此
facebookAccount
引用尚不可用。因此,应该从
完成
如果
已授予
为真,则阻止


请注意,您不能立即请求发布权限。您必须先请求读取权限,然后在获得授权后请求发布权限。

问题似乎在于您的NSDictionary创建

   NSDictionary *options = @{
                           ACFacebookAppIdKey: @"2************",
                           ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"],
                           ACFacebookAudienceKey: ACFacebookAudienceFriends
   };
您可以看到,您首先传递键,然后传递对象,在本例中,NSDictionary调用+dictionaryWithObjectsAndKeys

尝试使用正确的格式,如:

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys:
                         @"###############", ACFacebookAppIdKey, 
                         [NSArray arrayWithObject:@"publish_stream"], ACFacebookPermissionsKey, 
                         nil];
这应该行得通

请参见此处的相同问题:

大家好,这是一个非常好的共享示例。使用此示例,您可以将视频共享到Facebook、YouTube、Flicker、Vimeo查看上面的链接并测试此示例

您需要在此方法中将
AppId
设置为
ESSViewController.m
类:

- (IBAction)facebook:(id)sender
{
    self.fb = [[[ESSFacebook alloc] initWithDelegate:self
                                               appID:@"youAppID"
                                           appSecret:@"secret"] autorelease];
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"IMG_1203" withExtension:@"MOV"];
    [self.fb uploadVideoAtURL:url];
}

这可能是Facebook的一个老版本,但用于了解如何处理来自我们应用程序的共享视频。

grated总是返回false,所以我不认为这只是时间问题。当访问未被授予时返回的错误消息是什么?这正是我上面所说的:错误代码6。我尝试用谷歌搜索它,但没有得到muchDo您的设备设置中确实有一个帐户设置?我在plist中添加了一个url方案行,我通过了“发布流”和“发布操作”的权限,因为每次完成100%上传后我都会出错{“错误”:{“消息”:(#200)需要扩展权限:发布操作”,“类型”:“OAuthException”,“code”:200}最近的facebook更新。如果你在4月30日之后创建应用程序,你必须提交facebook应用程序供审查,并且你必须要求在reivew中发布行动。