組み込みのiOS 6 Facebook統合を使用して、ユーザーの基本情報(電子メールアドレス、誕生日など)を取得できますか?私が見たドキュメンテーション/例のすべては、単にSLComposeViewController
を開くためにiOS 6の統合を使用しています。Facebook iOS 6 - ユーザー情報を取得
ありがとうございます。
組み込みのiOS 6 Facebook統合を使用して、ユーザーの基本情報(電子メールアドレス、誕生日など)を取得できますか?私が見たドキュメンテーション/例のすべては、単にSLComposeViewController
を開くためにiOS 6の統合を使用しています。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);
}
}];
}
GET "私":
- (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アカウントのリンクを解除し、再びエラーの下にリンクしている{ エラー= { コード= 190; message = "デバイス上でアクセストークンが無効になっています。 type = OAuthException; }; } – NSCry
@NSIllusionここでアクセストークンの問題を解決しましたか? – user717452
@ user717452ほとんど解決されましたが、私に配線されているような良い答えは見つかりませんでした。私の問題は、シミュレータの内容と設定をリセットすることで解決しました。 – NSCry