この質問は、過去数年間のGoogle APIバージョンの数と、ユーザーが実際にGoogleの詳細でどの程度ログインしているかということで難しくなりました。これは、要求の不足のためにほとんど文書がないことを意味します。私は最終的にそれがアプリケーションコードによってthisすばらしい速いチュートリアルの助けを借りて働くように管理しました。このチュートリアルは、サインインプロセスを段階的に進めるだけでなく、私が後にしていたコンタクトルックアップをカバーすることも稀です。
このチュートリアルを終了して終了することをおすすめしますが、ここで最も重要な情報もいくつか入れておきます。
最初に行うことは、Googleコンソールにアプリを正しく追加したことです。 Google+ APIを追加してクライアントIDを取得してください。
第2に、Googleログインを設定する必要があります。これは簡単で、これを設定するための優れたリソースがあります。私はthis Googleの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"]];
なし、私は(私のクライアントIDを設定しませんでしたGoogleのコンソールから)、重要な部分はスコープのコードを追加することです。これがなければ、連絡先を取得するための正しいアクセス権が得られません。
この段階では、すべてが正しく設定されているかどうかを確認できます。アプリを読み込んでGoogleログインボタンをクリックすると、ウェブビューが読み込まれ、権限を確認するように求められます。重要な権限が上位2つです
:それは次のようになります。下の2つしかない場合は、自分のプロフィールにアクセスでき、あなたの友人のプロフィールにはアクセスできません。
これまでのところ、正しい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のURLで手動AFNetworkingリクエストを試みています。こちらのURLのように:https://developers.google.com/+/domains/api/circles/get#requestブレイクスルーがあればコメントや回答を投稿してください –
連絡先にアクセスできるかどうか教えてくださいアプリケーションに追加します。私も現在のプロジェクトで同じ要求を持っています – Dee