本文介绍了Facebook iOS上传视频“无法从访问令牌检索会话密钥”。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我想使用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


  1. 我下载了您的代码

  2. 从您的src中取出FBVideoUpload.h / m类别,将其加入我的专案

  3. #includeFBVideoUpload.hin FBConnect.h

  4. 然后我为上传视频编码如下

  1. I download your code https://github.com/zoul/facebook-ios-sdk
  2. take the FBVideoUpload.h/m classes from your src add add into my project
  3. #include "FBVideoUpload.h" in FBConnect.h
  4. 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上传视频“无法从访问令牌检索会话密钥”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-07 00:10