我正在尝试访问 Facebook 以将图像从 iOS 应用程序发布到页面。但到目前为止,我什至无法获得它给我所需的权限。
我做了很多搜索,包括iOS 6 Facebook 发布过程最终出现“remote_app_id 与存储的 id 不匹配”错误和Facebook Graph Api 粉丝页面照片上传 (IOS),但这些或其他帖子中的任何内容都无法解决这个问题。
这是代码的身份验证位:
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *options = @{
ACFacebookAppIdKey: @"xxxxxxxxxxxxxx",
ACFacebookPermissionsKey: @[@"manage_pages"],
ACFacebookAudienceKey: ACFacebookAudienceEveryone
};
[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
NSDictionary *options = @{
ACFacebookAppIdKey: @"xxxxxxxxxxxxxx",
ACFacebookPermissionsKey: @[@"photo_upload"],
ACFacebookAudienceKey: ACFacebookAudienceEveryone
};
[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)
{
if (granted)
{
// then do the upload - but it never gets here
}
else
{
// handle error - this is where it ends up
}
}];
}
else
{
// handle error
}
}];
正如其他一些帖子所建议的那样,我在写入权限之前首先请求读取权限。它很好地获得了 manage_pages 权限。
当我请求 photo_upload 权限时,会弹出 Facebook 权限警报,要求我确认它可以代表我发布,然后我单击“确定”-但该权限请求块返回,并且已授予设置为 FALSE。
我当时收到的完整错误消息是“Facebook 服务器无法满足此访问请求:无效权限:photo_upload”
在 Facebook 应用程序网站上,我认为我已经完成了我需要做的所有事情:我创建了我的应用程序并获得了一个 AppId,将 iOS 添加为平台并将 BundleId 设置为 iOS 应用程序正在使用的同一个,并在高级选项卡上将其设置为本机应用程序。
有没有人知道我做错了什么?