问题描述
我想使用ios-sdk在Facebook上上传视频
I want to upload video on facebook using ios-sdk
我查看讨论中的讨论并尝试在我的应用程序中实现
I check discussion in question iPhone Facebook Video Upload and try to implement it in my application
我尝试您的代码但不成功
I try to your code but not succeed
- 我下载了您的代码
- 从您的src中取出FBVideoUpload.h / m类别,将其加入我的专案
- #includeFBVideoUpload.hin FBConnect.h
- 然后我为上传视频编码如下
- I download your code https://github.com/zoul/facebook-ios-sdk
- take the FBVideoUpload.h/m classes from your src add add into my project
- #include "FBVideoUpload.h" in FBConnect.h
- then I code for upload video as follow
$ b b
这是代码
This is Code
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];
但在日志中遇到错误,
无法从访问令牌。
But got the error in Logs i.e
Unable to retrieve session key from the access token.
这是由于
if ([self sessionID] == nil) {
NSLog(@"Unable to retrieve session key from the access token);
return;
}
在类FBVideoUpload中
in class FBVideoUpload
对于登录我正在使用此代码
For Login I am using this code
fbPermissions = [[NSArray arrayWithObjects:
@"read_stream", @"offline_access", @"publish_stream",nil] retain];
facebookObj = [[Facebook alloc] initWithAppId:fbAppId];
[facebookObj authorize:fbPermissions delegate:self];
我可以从Facebook获取我的更新,然后会话在这里确定。
你能告诉我我在做什么?
I am able to fetch my updates from facebook so then session is ok here.
Can you please tell me What wrong I am doing?
EDIT
更改zoul建议的登录步骤后,我现在没有收到sessionID错误日志..我的请求现在发送到fb服务器但获取此响应
EDIT
After changing the login steps suggested by the zoul I am now not getting the sessionID error log.. My request is now sending to the fb server but getting this response
<?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>
Amit Battan
推荐答案
请参阅:
您的问题看起来像是使用现代的应用程式切换验证机制。这导致不同的访问令牌,因此视频上传黑客不工作。切换到旧的身份验证方案很容易,请参见此分支中的(向 Facebook
类添加 forceOldStyleAuth
属性)。
Your problem looks like you are using the modern, app-switching authentication scheme. That results in a different access token and therefore the video uploading hack does not work. Switching to the older authentication scheme is easy, see code in this branch (it adds a forceOldStyleAuth
property to the Facebook
class).
对于上传的字典,我的代码看起来如下:
As for the dictionary to pass with the upload, here’s how my code looks:
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];
这适用于我。
这篇关于Facebook iOS上传视频“无法从访问令牌检索会话密钥”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!