2011-04-05 2 views
1

나는Facebook iOS Upload Video "액세스 토큰에서 세션 키를 검색 할 수 없습니다."

내가

난 당신의 코드를 시도

하지만이

  1. I 성공 질문 iPhone Facebook Video Upload에서 토론을 확인하고 내 응용 프로그램에서 구현하려고-SDK IOS를 사용하여 페이스 북에 동영상을 업로드 할
  2. 는 "FBVid을 포함 내 프로젝트에 추가 https://github.com/zoul/facebook-ios-sdk

  3. 이 SRC에서 FBVideoUpload.h/m 수업을 당신의 코드를 추가 다운로드 eoUpload.h "FBConnect.h에서
  4. 는 내가

를 따를 때이

FBVideoUpload *upload = [[FBVideoUpload alloc] init]; 
upload.accessToken = facebookObj.accessToken; 
upload.apiKey = fbAppKey; 
upload.appSecret = fbAppSecret; 
NSString *filePath = @"/Users/pratgupta/Library/Application Support/iPhone Simulator/4.1/Media/DCIM/100APPLE/IMG_0010.M4V"; 
NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 
NSData *data = [NSData dataWithContentsOfFile:filePath]; 
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
               data, @"", 
               @"test", @"title", 
               @"upload testing", @"description", 
               @"EVERYONE", @"privacy", 
               nil]; 
[upload startUploadWithURL:fileURL params:params delegate:self]; 

코드

입니다 업로드 비디오 코딩 그러나 로그에 오류가 발생했습니다 즉
세션 키를 검색 할 수 없습니다 액세스 토큰에서. 클래스 FBVideoUpload에 인해

if ([self sessionID] == nil) { 
     NSLog(@"Unable to retrieve session key from the access token); 
     return; 
} 

로그인을 위해

은 내가 페이스 북에서 내 업데이트를 가져올 수 있어요

fbPermissions = [[NSArray arrayWithObjects: 
         @"read_stream", @"offline_access", @"publish_stream",nil] retain]; 
facebookObj = [[Facebook alloc] initWithAppId:fbAppId]; 
[facebookObj authorize:fbPermissions delegate:self]; 

그래서 다음 세션이 괜찮이 코드를 사용하고있다

이리.
제발 내가하고있는 잘못을 말해 줄 수 있습니까?

zoul 내가 지금 세션 ID 오류 로그 .. 내 요청이 이제 FB 서버로 전송하지만,이 응답

<?xml version="1.0" encoding="UTF-8"?> 
<error_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd"> 
    <error_code>100</error_code> 
    <error_msg>privacy must contains a valid privacy 'value'</error_msg> 
    <request_args list="true"> 
    <arg> 
     <key>description</key> 
     <value>upload testing</value> 
    </arg> 
    <arg> 
     <key>privacy</key> 
     <value>EVERYONE</value> 
    </arg> 
    <arg> 
     <key>v</key> 
     <value>1.0</value> 
    </arg> 
    <arg> 
     <key>api_key</key> 
     <value>[here is my API key]</value> 
    </arg> 
    <arg> 
     <key>method</key> 
     <value>facebook.video.upload</value> 
    </arg> 
    <arg> 
     <key>session_key</key> 
     <value>c4ada192feb82e8f239a283d-555042146</value> 
    </arg> 
    <arg> 
     <key>sig</key> 
     <value>8255d4cc3838b278b26fbfc8c86818a3</value> 
    </arg> 
    <arg> 
     <key>title</key> 
     <value>test</value> 
    </arg> 
    </request_args> 
</error_response> 
을 받고있다을 받고 있지 않다 제안 로그인 단계를 변경 한 후 편집

미트 Battan는

답변

1

FBVideoUpload.h의 주석을 참조하십시오 :

6,이 코드는 쉽게 다가오는 SDK의 출시와 함께 깨질 수 비공식 매우 깨지기 쉬운 페이스 북의 클래스 및 에서 액세스 토큰을 구문 분석하는 유의하시기 바랍니다. 또한 은 이전의 팝업 인증 및 으로 전환하는 앱이 아닌 새로운 앱으로 만 작동합니다. (새로운 인증 방식은 우리가 구문 분석 할 수 없습니다 다른 인증 토큰 형식 될 것으로 보인다.) 당신이 현대, 응용 프로그램 전환 인증 방식을 사용하는 것처럼

귀하의 문제가 보인다. 그 결과 다른 액세스 토큰이 생기므로 비디오 업로드 해킹이 작동하지 않습니다.더 오래된 인증 체계로 전환하는 것은 쉽습니다. 클래스에 forceOldStyleAuth 속성을 추가하면 code in this branch을 참조하십시오. 업로드에 전달하는 사전에 관해서는


, 여기에 내 코드가 보이는 방법은 다음과 같습니다

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
    @"Sample video title", @"title", 
    @"Sample video description", @"description", 
    nil]; 
upload = [[FBVideoUpload alloc] init]; 
[upload setApiKey:kAPIKey]; 
[upload setAccessToken:facebook.accessToken]; 
[upload setAppSecret:kAppSecret]; 
[upload startUploadWithURL:movieURL params:params delegate:self]; 

이 나를 위해 작동합니다. "http://developers.facebook.com/docs/reference/api/post/

하지만 그 동영상에 표시되지 해결되지 않습니다 개인 정보 보호 개체에 대한 포스트 객체 이야기에 대한

NSDictionary * params = [NSDictionary dictionaryWithObjectsAndKeys: 
          @"Sample video title", @"title", 
          @"Sample video description", @"description", 
          @"{\"value\": \"ALL_FRIENDS\"}", @"privacy", 
          nil]; 

그래프 API 문서를 :

+0

우리는'facebookObj.forceOldStyleAuth = TRUE'를 설정해야합니까 ??? –

+0

예. (그리고 분명히 언급 한 브랜치의 코드를 먼저 병합해야합니다. 그렇지 않으면'forceOldStyleAuth'가 없습니다.) – zoul

+0

오류 로그가 나오지 않습니다. 그러나 비디오가 업로드되지 않았습니다 .... 나는 성공적인 응답을 얻고 있습니다. 하지만 페이스 북에서 여기에 업로드 된 동영상을 찾지 못했습니다. . . . . ** 응답은 로그에서받습니다 **'받은 응답 .http : //api-video.facebook.com/restserver.php ' –

3

개인 정보 보호 사전 항목 형식 변경 내 비디오 "또는 직접 링크가있는 경우 내 친구들이 볼 수있게 할 수도 있습니다. 동영상 페이지의 공유 버튼도 깨져서 내 벽에 게시 할 수 없습니다.

+0

예요 개인 정보 보호 문제가 해결되었습니다 몇 가지 변경을했습니다 .. 매우 놀라운 이유는 비디오가 여전히 표시되지 않습니다 http://stackoverflow.com/questions/5565512/ –

+1

나는 동일한 비디오 문제가 있었는데 당신은 어제했으나 지금은 효과가 있습니다. 어쩌면 뭔가 facebook의 서버와 어색했을 것입니다. – Christina

+0

예입니다. . –

관련 문제