這個問題在過去幾年變得更加困難由谷歌API版本的數量,以及如何很少的用戶確實與其谷歌詳情登錄。這意味着由於缺乏需求而幾乎沒有文件。我終於設法通過App Code的this偉大的快速教程幫助它工作。本教程很少見,因爲它會逐步完成整個登錄過程,並涵蓋了我之後的聯繫方式。
我會建議通過本教程開始完成,但我也會在這裏提出一些最重要的信息。
做的第一件事是確定您已經正確添加您的應用程序的谷歌控制檯。確保添加Google+ API並獲取您的客戶ID。
其次,您需要設置您的Google登錄。這非常容易,並且有一些很好的資源可用於設置。我會推薦this谷歌youtube視頻,但有很多其他資源在線。我不會詳細討論,因爲這不是問題的關鍵。
接下來,您需要設置您的登錄代碼。
確保您已經添加既代表你的viewController
<GIDSignInDelegate, GIDSignInUIDelegate
,並在viewDidLoad中配置的:
[GIDSignIn sharedInstance].delegate = self;
[GIDSignIn sharedInstance].uiDelegate = self;
[GIDSignIn sharedInstance].clientID = @"123456789012-thisismadeup123456789.apps.googleusercontent.com";
[[GIDSignIn sharedInstance] setScopes:@[@"https://www.googleapis.com/auth/plus.login", @"https://www.googleapis.com/auth/plus.me"]];
我在別處找到了問題的答案都沒有我的設置我的clientID的(從谷歌控制檯),但重要的部分是添加範圍代碼,沒有這你沒有得到正確的權限來獲取聯繫人。
在這個階段,你可以檢查一切是否設置正確。加載你的應用程序並點擊Google登錄按鈕,它應該加載webview並要求你確認你的權限。它應該是這樣的:
重要的權限是前兩名。如果你只有最低兩位,你將只能訪問你自己的個人資料,而不能訪問你的朋友。
一旦你有這麼多,你只需要執行正確的API調用返回你的朋友。說起來容易,而不是在不同的Google網站上使用不同的純數字。我完成了我的以下各項:
NSString * urlString = [NSString stringWithFormat:@"https://www.googleapis.com/plus/v1/people/me/people/visible?access_token=%@", [GIDSignIn sharedInstance].currentUser.authentication.accessToken];
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
manager.responseSerializer = responseSerializer;
[manager GET:path parameters:params success:^(AFHTTPRequestOperation * operation, id responseObject) {
if (![responseObject isEqual: [NSNull null]]) {
if(responseObject[@"error"]) {
NSError * error = [NSError errorWithDomain:@"" code:0 userInfo:@{NSLocalizedDescriptionKey: responseObject[@"error"]}];
}
else {
// We now have our response object
}
}
else {
// response is nil
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Failure
}];
您將需要添加AFNetworking到您的項目,這是我的項目的自定義功能,因此可能不會被複制過去的,能。
這雖然應該返回您可以使用的所有聯繫人的字典。
嘿..你有什麼辦法做到這一點..?我也在尋找解決方案。 – va05
我正在繼續爲此工作。我不認爲它有一套Google API,因此我正在嘗試對經過驗證的Google網址進行手動AFNetworking請求。像這裏的其中一個網址:https://developers.google.com/+/domains/api/circles/get#request如果您有任何突破,請發表評論或回覆 –
如果您能夠訪問聯繫人,請讓我知道到你的應用程序中我也有同樣的要求在我目前的項目 – Dee