gpt4 book ai didi

iphone - Facebook 设置 iOS 6 - 应用程序名称未显示在允许应用程序列表中

转载 作者:行者123 更新时间:2023-12-03 19:43:52 24 4
gpt4 key购买 nike

在 iOS 6 中,用户可以通过“设置”>Facebook 登录 Facebook。该 View 中有一个部分列出了用户可以选择允许/禁止使用 Facebook 帐户的应用程序。

我已将 FacebookSDK.framework 集成到我的应用程序中,并且此列表中会出现该应用程序的一行。只是,我的应用程序的名称没有列出,它的应用程序图标也没有列出。

我已经进行了多次搜索,但似乎找不到将名称/图标添加到列表中的方法。谁能指出我正确的方向?

最佳答案

您需要使用帐户存储方法来请求访问权限:

-(void)authenticateFacebook {
if([UIActivityViewController class] ) {
NSArray *faceBookPermissions = @[@"publish_stream"];
////ACFacebookAppVersionKey: @"1.0",

NSDictionary *faceBookOptions = @{
ACFacebookAppIdKey: @"xxxxxxxx",
ACFacebookPermissionsKey:faceBookPermissions,
ACFacebookAudienceKey:ACFacebookAudienceFriends
};

AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if(del.accountStore == nil) {
del.accountStore = [[ACAccountStore alloc] init];
}
if(del.facebookAccount == nil) {
ACAccountType *facebookAccountType = [del.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[del.accountStore requestAccessToAccountsWithType:facebookAccountType
options:faceBookOptions
completion:^(BOOL granted, NSError *error)
{
if (granted) {
NSArray *accounts = [del.accountStore accountsWithAccountType:facebookAccountType];
del.facebookAccount = [accounts lastObject];
NSLog(@"got an account");
[self performSelectorOnMainThread:@selector(gotAnAccount) withObject:self waitUntilDone:NO];
} else {
NSLog(@"No account");
//fail gracefully
[self performSelectorOnMainThread:@selector(noAccount) withObject:self waitUntilDone:NO];
}
}];
}
}

完成后,您可以使用您的应用 ID 发布到 Facebook,如下所示:

    -(void)postToFacebook:(NSDictionary *)parameters  {

AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate];

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

SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodPOST
URL:feedURL
parameters:parameters];
request.account = del.facebookAccount;
[request performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *alertText;
if (error) {
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
[self performSelectorOnMainThread:@selector(errorWithRequest:) withObject:alertText waitUntilDone:NO];
} else {
alertText = @"Posted action, id: %@";
[self performSelectorOnMainThread:@selector(cancelButtonAction:) withObject:nil waitUntilDone:NO];

}
NSLog(@"%@",alertText);
}];
}

您需要应用程序委托(delegate)拥有 accountStore 和 account 变量,然后创建使用的 @selector 方法。请注意,如果完成处理程序对 UI 执行任何操作,则应在主线程上运行,否则您将需要等待一段时间才能运行完成处理程序 UI 代码。

关于iphone - Facebook 设置 iOS 6 - 应用程序名称未显示在允许应用程序列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com