在iOS上使用Facebook並非新手,但我的第一次嘗試是使用iOS 5和iPhone 3GS。使用Facebook的Facebook SDK(https://developers.facebook.com/docs/ios/)是唯一的出路。iOS 7需要Facebook SDK嗎?
快進到iOS 7(和實際的iOS 6),和蘋果提供SocialKit,賬戶SDK等,並有大量的在線教程,做這樣的事情的:
if ([self userHasAccessToFacebook]) {
ACAccountStore* accountStore = [[ACAccountStore alloc]init];
ACAccountType* facebookAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary* options = @{ACFacebookAppIdKey: FACEBOOK_APP_KEY,
ACFacebookPermissionsKey: @[@"publish_stream"],
ACFacebookAudienceKey: ACFacebookAudienceEveryone};
[accountStore
requestAccessToAccountsWithType:facebookAccountType
options:options
completion:^(BOOL granted, NSError *error) {
if (granted) {
這個工作如果我已經在其他地方(在這種情況下,我已經通過Android設備上的登錄對話框)授權了我的Facebook應用程序,但是在撤銷訪問(當然是測試)後,我得到
message =「Error驗證訪問令牌:會話不匹配 當前存儲的會話。Th可能是因爲用戶在會話創建之後更改了密碼 ,或者由於安全原因Facebook更改了會話 。
當我試圖分享到Facebook。這是甚至後requestAccessToAccountsWithType
表明訪問被授予。
我假設在這一點上我需要登錄並重新授權我的應用程序,但是迄今爲止我看到的任何教程都沒有給出有關如何執行此操作的任何指示。
在一天結束時,問題是雙重的:我是否需要使用Facebook上的Facebook SDK來執行我需要執行的所有操作,如果我不需要,我如何獲得該應用程序只使用SocialKit重新授權?
如果您只想發佈到用戶時間表,並且您不需要在iOS6下面支持,那麼您就不需要SDK。關於訪問失敗,現在通過設置應用程序進行控制,所以如果出現錯誤,您需要告訴用戶他們需要允許從那裏訪問(我想!) – Flexicoder