5

アプリで Google サインインを機能させようとしていますが、問題があります。

(Google プラス サインインではなく、Google サインインを使用しています)

このリンクをたどったところ、うまくいきました。userID、user.authentication.idToken、user.profile.name、および user.profile.email を取得します。

しかし、ユーザーのプロフィール写真を取得する方法がわかりません。上記のGoogleドキュメントにはコメントがありません。

私は何時間もウェブを検索しましたが、私が望まない google plus サインインのみを見つけました。

アプリに Facebook サインインを実装し、ユーザー プロフィール写真を取得する URL を提供します。

Googleサインインはそのようなものを提供しますか?

これは、ユーザー情報を取得する作業コードですが、画像はありません。

助けてください

- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user withError:(NSError *)error {

if (user) {
    NSString *userId = user.userID;                  // For client-side use only!
    NSString *token = user.authentication.idToken;   // Safe to send to the server
    NSString *name = user.profile.name;
    NSString *email = user.profile.email;
...
}
4

4 に答える 4

29

[GIDSignIn sharedInstance].shouldFetchBasicProfile = YES; を設定する必要があります。以下のコードを使用してプロファイル写真を取得します

    if ([GIDSignIn sharedInstance].currentUser.profile.hasImage)
    {
        NSUInteger dimension = round(thumbSize.width * [[UIScreen mainScreen] scale]);
        NSURL *imageURL = [user.profile imageURLWithDimension:dimension];
    }

迅速な実装:

let dimension = round(thumbSize.width * UIScreen.mainScreen().scale);
let pic = user.profile.imageURLWithDimension(dimension) 
于 2015-07-30T06:49:20.670 に答える
2

スイフト3

let dimension = round(imageSize.width * UIScreen.main.scale)
let pic = userInfo.profile.imageURL(withDimension: dimension)

imageSize.width は、画像の幅が必要です。

let dimension = round(100 * UIScreen.main.scale)
let pic = userInfo.profile.imageURL(withDimension: dimension)

ありがとうアミット

于 2016-10-07T06:14:52.933 に答える
0

BOOL hashImage=user.profile.hasImage;

CGSize thumbSize=CGSizeMake(500, 500);
if (hashImage) {
    NSUInteger dimension = round(thumbSize.width * [[UIScreen mainScreen] scale]);
    NSURL *imageURL = [user.profile imageURLWithDimension:dimension];
    NSLog(@"image url=%@",imageURL);
}
于 2016-12-28T08:26:40.890 に答える
0

スイフト5

この呼び出しで Google アカウントにサインインする必要があります。

GIDSignIn.sharedInstance().signIn()

次に、呼び出しがここに戻ってくると:

func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    if let error = error {
        // Mange error
    } else {
       let dimension = round(MY_UIIMAGE_VIEW.bounds.width * UIScreen.main.scale)
       let pic = user.profile.imageURL(withDimension: UInt(dimension))
       print("Image URL: \(pic)")
    }
}

これは私のために働いているコードです。@Techbee for Swift 5 の編集です。画像を表示するために画像ビューを使用しています。75x75 フレームで、API から返される画像は 225x225 jpg です。

于 2020-10-08T10:42:36.343 に答える