2011-04-05 38 views
1

我要上传在Facebook上的视频IOS-SDKFacebook iOS上传视频“无法从访问令牌检索会话密钥。”

我有问题iPhone Facebook Video Upload检查讨论,并设法实现它在我的应用

我尝试你的代码,但没有成功

  1. 我下载代码https://github.com/zoul/facebook-ios-sdk
  2. 采取FBVideoUpload.h/M类从你的src add添加到我的项目
  3. 包括“FBVid 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]; 

但在日志得到了错误即
无法检索会话密钥来自访问令牌。

这是由于

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

类FBVideoUpload

对于登录我使用这个代码

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

我能够从Facebook获取我的更新,以便随后会议是确定这里。
你能告诉我我在做什么错?

编辑
改变由zoul现在我没有得到的SessionID错误日志..我的要求,现在发送到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评论:

请注意,此代码从 Facebook类,这是相当脆弱的,非官方和 解析 访问令牌可以很容易地与即将推出的SDK版本打破。此外,它 似乎只适用于旧的弹出式身份验证和 而不是使用应用程序切换的新的身份验证。 (新的身份验证 方案似乎导致我们无法解析不同的身份验证令牌格式 。)

您的问题,看起来像您使用的是现代的,应用程序切换认证方案。这会导致访问令牌不同,因此视频上传黑客无效。切换到较旧的身份验证方案很容易,请参阅code in this branch(它将forceOldStyleAuth属性添加到Facebook类中)。


至于字典通过与上传,这里是我的代码的外观:

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

这对我的作品。

+0

我们必须设置'facebookObj.forceOldStyleAuth = TRUE' ??? – 2011-04-05 13:41:09

+0

是的。 (很显然,你必须合并自提支路的第一代码,否则就没有'forceOldStyleAuth'开始。) – zoul 2011-04-05 14:00:40

+0

现在错误日志不来了,但视频没有上传.... 我得到成功响应但当检查Facebook没有发现任何视频上传到这里。 。 。 。 。 **响应在日志中接收**'接收response..http://api-video.facebook.com/restserver.php ' – 2011-04-05 14:02:49

3

隐私字典词条格式改变:

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

的图形API文档的Post对象谈论的隐私对象:http://developers.facebook.com/docs/reference/api/post/

但是,这并不解决视频没有显示在了“我的视频“,甚至可以让我的朋友看到​​它,如果他们有直接的联系。视频页面上的分享按钮也被打破,所以我甚至无法将它张贴到我的墙上。

+0

是隐私问题现在解决..但非常令人惊讶,为什么视频仍然不显示http://stackoverflow.com/questions/5565512/ – 2011-04-07 05:24:16

+1

我有同样的视频问题你昨天做了,但现在正在工作。也许有些脸书上的服务器太过瘾了。 – Christina 2011-04-07 18:09:56

+0

是的,现在是。 。 – 2011-04-08 05:11:47

相关问题