2

오류 코드. 내가 프로그램을 실행할 때 아무 일도 발생하지 않습니다, 나는 대신에 이러한 오류가 나타날 수업로드 비디오 - 사용자의 허가에 로그를 요청 할 수없는, 내 응용 프로그램에 페이스 북의 비디오 업로드를 통합하는 아이폰 OS 6의 사회적 프레임 워크를 사용하고 6

작업을 완료 할 수 없습니다. (com.apple.accounts 오류 6.)

"활성 액세스 토큰은 현재 사용자에 대한 정보를 조회하는 데 사용되어야합니다.", "유형": "OAuthException", "코드"2500}} "

을 다음은

내 코드, 나는이 tutorial에서 구현되는 상반기입니다. granted가 첫 번째 오류의 원인이 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); 
    }]; 
} 

답변

1

안녕 여기 당신이 페이스 북, 유튜브, 플리커에 동영상을 공유 할 수있는이 사용 아주 좋은 공유 예 iOS (Wiki) (Sample Project for iOS, ~3 MB)이다, 비 메오 링크 및 테스트 위보세요 이 예.

는이 방법에서 ESSViewController.m 클래스에 당신에게 AppId를 설정해야합니다

- (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]; 
} 

이 페이스 북의 올드 virsion입니다 될 수 있지만 ourApp에서 주 비디오에 대한 처리하는 방법에 대한 아이디어를 얻기 위해.

+1

방금 ​​최근에이 파일이 발견되었으며 정상적으로 작동했습니다.덕분에 내가 "publish_stream"&에 대한 권한을 통과 – Mahir

+0

@ 내가 오류 후 100 % 업로드 매번 { "오류"완료 얻을 beacause를 "publish_actions" : { "메시지": "(# 200) 확장 된 권한이 필요합니다 : publish_actions를" , "type": "OAuthException", "code": 200}} – g212gs

+0

최근 페이스 북 업데이트. 4 월 30 일 이후에 앱을 만드는 경우 검토를 위해 Facebook 앱을 제출해야하며 reivew에서 publish_actions를 요청해야합니다. –

0

코드의 모든 NSURL *videourl는 다른 방법으로 이동해야 후 현재 실행 중입니다 requestAccessToAccountsWithType: 요청이 진행 중이므로 facebookAccount 참조는 아직 제공되지 않습니다. 따라서 granted이 true 인 경우 코드를 만들고 이동하는 새로운 메서드는 completion 블록에서 호출해야합니다.

게시 권한을 즉시 요청할 수는 없습니다. 먼저 읽기 권한을 요청한 다음 권한이 부여되면 게시 권한을 요청해야합니다.

+0

는 항상 false를 반환 부여, 그래서 그것은 단지 시간 문제 – Mahir

+0

생각하지 않습니다 무엇입니까 액세스 권한이 부여되지 않은 경우 반환 된 오류 메시지가? – Wain

+0

위의 내용과 동일합니다. 오류 코드 6. 인터넷 검색을 시도했지만 많이 사용하지 않았습니다. – Mahir

0

문제는 NSDictionary 생성에있는 것 같습니다.

NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys: 
         @"###############", ACFacebookAppIdKey, 
         [NSArray arrayWithObject:@"publish_stream"], ACFacebookPermissionsKey, 
         nil]; 

것은이 작동합니다 :

NSDictionary *options = @{ 
          ACFacebookAppIdKey: @"2************", 
          ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"], 
          ACFacebookAudienceKey: ACFacebookAudienceFriends 
    }; 

당신은

같이 올바른 형식을 사용해보십시오 ... 먼저 키를 전달하고 개체 이상,있는 NSDictionary이 경우 + dictionaryWithObjectsAndKeys를 호출 어디 참조 .

여기에 같은 질문을 참조하십시오 Getting "Error Code 8" When Calling [ACAccountStore requestAccessToAccountsWithType] - iOS Facebook