是否可以使用內置的iOS 6 Facebook集成獲取用戶的基本信息(電子郵件地址,生日等)?我見過的所有文檔/示例都使用iOS 6集成來打開SLComposeViewController
。Facebook iOS 6 - 獲取用戶信息
謝謝你的時間。
是否可以使用內置的iOS 6 Facebook集成獲取用戶的基本信息(電子郵件地址,生日等)?我見過的所有文檔/示例都使用iOS 6集成來打開SLComposeViewController
。Facebook iOS 6 - 獲取用戶信息
謝謝你的時間。
請查看我的示例項目。它允許你上傳視頻到Facebook,但它也包括一個獲取你的信息的方法,你應該看看文件ViewController.m
,標籤控制器中標記爲「Native」的文件。
https://bitbucket.org/danielphillips/fb-video-upload
您將需要導入Social
和Accounts
框架,做你想做的。如果您有權訪問ACAccountStore
的用戶請求訪問用戶Facebook帳戶,那麼您可以使用此帳戶創建一個帶有所需參數的SLRequest
,在這裏您需要圖形對象「/ me」。
屬性:
@property (nonatomic, retain) ACAccountStore *accountStore;
@property (nonatomic, retain) ACAccount *facebookAccount;
身份驗證:
- (IBAction)getMeButtonTapped:(id)sender {
if(!_accountStore)
_accountStore = [[ACAccountStore alloc] init];
ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[_accountStore requestAccessToAccountsWithType:facebookTypeAccount
options:@{ACFacebookAppIdKey: @"483616868329082", ACFacebookPermissionsKey: @[@"email"]}
completion:^(BOOL granted, NSError *error) {
if(granted){
NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount];
_facebookAccount = [accounts lastObject];
NSLog(@"Success");
[self me];
}else{
// ouch
NSLog(@"Fail");
NSLog(@"Error: %@", error);
}
}];
}
得到 「我」:
- (void)me{
NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"];
SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
requestMethod:SLRequestMethodGET
URL:meurl
parameters:nil];
merequest.account = _facebookAccount;
[merequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *meDataString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"%@", meDataString);
}];
}
https://github.com/jonasman/JNFacebookDownload
self.facebookDownload = [JNFacebookDownload new];
self.facebookDownload.appID = @"380637545425915";
[self.facebookDownload downloadInformation:^(NSDictionary *userInfo, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error)
{
if (error.code == JNFacebookDownloadNoAccount)
NSLog(@"No account");
else if (error.code == JNFacebookDownloadNoPermissions)
NSLog(@"No permissions");
else if (error.code == JNFacebookDownloadNoAPPID)
NSLog(@"No APP ID Configured");
}
else
{
self.textView.text = [userInfo description];
}
});
我使用高級代碼第一次的代碼適合我。但下一次當我取消fb賬戶的鏈接,然後再次鏈接,然後得到低於錯誤的錯誤代碼= 1902; message =「訪問令牌在設備上失效。」; type = OAuthException; }; } – NSCry
@NSIllusion你在這裏解決了訪問令牌的問題嗎? – user717452
@ user717452幾乎解決了,但沒有找到任何好的答案看起來有線給我。我的問題通過重置模擬器內容和設置來解決。 – NSCry