由於山獅現在已經officialy Facebook的整合,我想打一點點與Accounts.framework
和OS X.在OS X山獅訪問Facebook帳戶
我建立了一個應用程序在Facebook開發應用程序和使用的Social.framework
下面的代碼請求訪問登錄的用戶的Facebook的帳戶:
ACAccountStore *acStore = [[ACAccountStore alloc] init];
ACAccountType *accType = [acStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:FB_APP_ID, ACFacebookAppIdKey, @"read_stream, publish_stream", ACFacebookPermissionsKey, ACFacebookAudienceFriends, ACFacebookAudienceKey, nil];
[acStore requestAccessToAccountsWithType:accType options:options completion:^(BOOL granted, NSError *error) {
if (granted) {
NSLog(@"Accounts: %@", acStore.accounts);
NSLog(@"Access granted");
} else {
NSLog(@"Access denied");
}
}];
現在我總是當我從Xcode中啓動的應用程序出現錯誤Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"
第2-3次,OS X顯示確認對話框「XYZ想要訪問您的Facebook帳戶」,我點擊確定,我收到一個錯誤,說「應用程序尚未安裝」。現在這個錯誤「消失了」,我得到了上面提到的錯誤。
我的問題是:我是否必須在我的Xcode Project(Info.plist)或Facebook Developer App中配置一些特殊的東西來使其與OS X一起使用?或者我在代碼中丟失了什麼?有關這方面的示例和教程似乎非常罕見: -/
我已經觀看了有關Twitter/Facebook集成的WWDC 2012視頻,但它幾乎完全使用我使用的代碼。
任何幫助表示讚賞:-)
乾杯, 比約恩
更新
我解決了這個問題,我只是沒有閱讀文檔不夠仔細;-)我必須通過權限作爲NSArray而不是字符串。我已經修改了方案字典是這樣的:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: FB_APP_ID, ACFacebookAppIdKey, [NSArray arrayWithObjects:@"read_stream", @"publish_stream", @"email", @"user_likes", nil], ACFacebookPermissionsKey, ACFacebookAudienceFriends, ACFacebookAudienceKey, nil];
現在OS X顯示,問我,如果我想允許應用程序發佈到Facebook的代表我一個警告,我點擊確定和新出現的錯誤導致無法訪問Facebook賬號:
Error Domain=com.apple.accounts Code=7 "The Facebook server could not fulfill this access request: The app must ask for a basic read permission at install time."
我已經修改的權限是公正email
或只是user_likes
但是這一切都導致了同樣的錯誤。如果我只請求read_stream
訪問的訪問被授權,但結果在OAuth錯誤190的消息Error validating access token: User XXXXXX has not authorized application XXXXXX.
更新2:
我現在解決了我所有的問題,見我的回答如下。
嗨,可能你可以回答我的問題嗎? http://stackoverflow.com/questions/12644229/ios-6-facebook-posting-procedure-ends-up-with-permissions-alert-view – Stas
雖然我嘗試了你在這裏發佈的所有內容 - 我的意思是不同類型的權限..結果是一樣的:( – Stas
尼斯好好幹得好!..它也幫了我很多 – Warewolf