gpt4 book ai didi

iphone - 在 iOS 6.0 中获取 facebook 访问 token

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:04 25 4
gpt4 key购买 nike

我已经实现了 facebook SDK,借助它能够使用以下代码获取 facebook 身份验证和用户信息。

  if(!self.accountStore)
self.accountStore = [[ACAccountStore alloc] init];
if(NSClassFromString(@"SLComposeViewController") != nil)
{
ACAccountType *facebookTypeAccount = [self.accountStore
accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"];
NSLog(@"facebookTypeAccount..:%@",facebookTypeAccount);
NSArray *accounts = [self.accountStore accountsWithAccountType:facebookTypeAccount];

if (facebookTypeAccount) {
if ([accounts respondsToSelector:@selector(count)]) {
[self.accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey:
@"key", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError
*error) {
if(granted){
NSArray *accounts = [self.accountStore
accountsWithAccountType:facebookTypeAccount];
[self fetchuserinfo];

}

}];

}



-(void)fetchuserinfo
{
NSString *accessToken = [FBSession activeSession].accessToken;
NSString *url=[NSString stringWithFormat:@"https://graph.facebook.com/me"];
NSURL *meurl = [NSURL URLWithString:url];
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];

NSLog(@" setting account %@",_facebookAccount);

merequest.account = _facebookAccount;

[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
returnedData = responseData;

NSLog(@" meRequest Respnse %@", meDataString);
if (returnedData!=nil) {
if(NSClassFromString(@"NSJSONSerialization"))
{
NSError *error = nil;
id object = [NSJSONSerialization
JSONObjectWithData:returnedData
options:0
error:&error];

if(error) { }


if([object isKindOfClass:[NSDictionary class]])
{
NSDictionary *results = object;

NSString *categoryString=[[results valueForKeyPath:@"picture.data"] objectForKey:@"url"];

NSString *userid=[results objectForKey:@"id"];
if (userid != nil)
{
self.gotUserDetails = YES;
}
NSString *username=[results objectForKey:@"name"];
NSString *email=[results objectForKey:@"email"];

NSUserDefaults *userId=[NSUserDefaults standardUserDefaults];
[userId setObject:userid forKey:@"userid"];


}

}
}
}

但是要从这个登录用户发布提要(https://graph.facebook.com/me/feed/access_token=),我需要访问 token 。如果有人知道如何在 iOS 6.0 中获取访问 token ,请帮助我。

感谢大家。

最佳答案

Apple 提供了您可以使用的 SLRequest,而不是担心获取 token 并将其传递给您的调用。您指定目标 URL 和参数,SLRequest 处理(透明地)响应数据的身份验证、传输和收集。


您可能实际上并没有获得 token ,但您仍然需要获得授权,并且该授权与您想做的事情列表相关联。您的代码目前只显示您想要获取电子邮件地址,但您可以添加其他权限:

[accountStore requestAccessToAccountsWithType:facebookAccountType
options:
@{
ACFacebookAppIdKey : ...,
ACFacebookPermissionsKey : @[ @"email", @"read_stream", @"user_groups", @"user_videos" ]),
}
completion:^(BOOL granted, NSError *error) { ...

您需要查看 Facebook 文档,找出您需要向用户请求哪些权限,并为 ACFacebookPermissionsKey 填写这些权限。

关于iphone - 在 iOS 6.0 中获取 facebook 访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17269721/

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