【发布时间】:2013-02-15 23:15:16
【问题描述】:
我正在使用 SLComposeViewController 将文章发布到 facebook 墙上。当在设备设置中为 facebook 关闭应用权限时, SLComposeViewController 仍然可以通过将文章发布到 facebook 墙上来工作。这是 SDK 问题吗?
SLComposeViewController *facebookViewController=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result)
{
[facebookViewController dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
[[[UIAlertView alloc] initWithTitle:@"Facebook"
message:@"Action Cancelled"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil]
show];
[self dismissView];
}
break;
case SLComposeViewControllerResultDone:
{
[[[UIAlertView alloc] initWithTitle:@"Facebook"
message:@"Posted to Facebook successfully"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil]
show];
[self dismissView];
}
break;
}};
[facebookViewController addImage:_shareImage];
[facebookViewController setInitialText:_shareTitle];
[facebookViewController addURL:_shareLink];
[facebookViewController setCompletionHandler:completionHandler];
[self.dashboard presentViewController:facebookViewController animated:YES completion:nil];
}
【问题讨论】:
-
代码会很有帮助...
-
@0x7fffffff 我已经添加了代码..
-
相当肯定,当你使用 SLComposeViewController 时,整个权限都是由 iOS 管理的;从技术上讲,这是 iOS 发布,而不是您的应用。显示在用户时间线上的帖子可能是“通过 iOS”,对吧?
-
@ThiagoCampezzi:是的,它说“针对 iOS”。无论如何要检查“是否在设备设置中为 Facebook 禁用了应用权限?..
-
您可以尝试在之前打开一个 Facebook 会话并查看它是否有效(如果您使用的是最新的 Facebook SDK,您可能会在 FBSession 类中调用
+ (BOOL)openActiveSessionWithReadPermissions:(NSArray*)readPermissions allowLoginUI:(BOOL)allowLoginUI completionHandler:(FBSessionStateHandler)handler;,并将 NO 作为 allowLoginUI 参数传递并检查完成处理程序中的错误;但是,如果您尝试在不通过 SLComposeViewController 的情况下以编程方式向 Facebook 发帖(即,如果您有自己的自定义界面),则主要使用这种方法。
标签: ios facebook access-token facebook-access-token slcomposeviewcontroller