【问题标题】:Getting problem to wall post on Facebook在 Facebook 上发布墙贴时遇到问题
【发布时间】:2011-07-31 01:14:53
【问题描述】:

当我通过我的应用登录 Facebook 时,一切正常,但我在墙上发帖时遇到问题。

- (NSString *) postToFBWallStatus:(NSString *) status andSetDelegate: (id) delegate
{
    if (! isFBLoggedIn) 
    {
        return @"NotLoggedin";
    }

    NSString *message = status;
    NSLog(@"Appdelegate: postToFBWallStatus:andSetDelegate:");
    NSLog(@"to be delegate class: %@",[delegate class]);

    NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"];

    ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url];
    [newRequest setPostValue:message forKey:@"message"];
    [newRequest setPostValue:@"" forKey:@"name"];
    [newRequest setPostValue:@"" forKey:@"caption"];
    [newRequest setPostValue:@"" forKey:@"description"];
    [newRequest setPostValue:@"" forKey:@"link"];
    [newRequest setPostValue:@"" forKey:@"picture"];
    [newRequest setPostValue:_accessToken forKey:@"access_token"];
    [newRequest setDidFinishSelector:@selector(postToWallFinished:)];
    [newRequest setDidFailSelector:@selector(postToWallFailed:)];
    [newRequest setDelegate:delegate];
    [newRequest startAsynchronous];

    return @"Loggedin";
}

我在 Facebook 墙上发帖时收到此消息:

error =     {
        message = "Invalid access token signature.";
        type = OAuthException;
    };

【问题讨论】:

  • 我也遇到了同样的问题。问题是我的数据库正在截断访问令牌,因为我将存储它的列设置为 VARCHAR(100)。事实证明,对于某些访问令牌来说,100 个字符是不够的,所以发送的访问令牌是无效的。
  • 如何获取访问令牌的值?
  • 您需要在 Facebook 注册以获得 Oauth 密钥,然后用户需要批准该应用程序才能运行。
  • 您没有使用 Facebook SDK for iOS 有什么原因吗?

标签: objective-c ios facebook facebook-graph-api


【解决方案1】:

您必须使用用户的access_token 将信息发布到他们的墙上。此外,用户需要允许 API 调用工作的publish_stream 权限。在对用户进行身份验证时,将publish_stream 添加到权限范围内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多