iOS Google登录无法获取用户个人资料图片?(不是Google plus登录)

时间:2015-07-29 18:00:08

标签: ios objective-c google-plus-signin google-signin

我试图在我的应用中进行谷歌登录工作,但有问题。

(不是谷歌加登录,我使用谷歌登录)

我跟着this link并且它有效。我得到userID,user.authentication.idToken,user.profile.name和user.profile.email。

但我无法找到获取用户个人资料照片的方式。 以上谷歌文档没有评论。

我在网上搜了几个小时,但发现只有google plus登录,我不想要。

我在我的应用中实施了Facebook登录,他们提供了获取用户个人资料图片的网址。

谷歌登录会提供类似的服务吗?

这是我的工作代码,用于获取用户信息,但没有图片。

请帮忙

- (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 个答案:

答案 0 :(得分:25)

你必须设置[GIDSignIn sharedInstance] .shouldFetchBasicProfile = YES;以及使用以下代码获取个人资料照片

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

Swift实施:

let dimension = round(thumbSize.width * UIScreen.mainScreen().scale);
let pic = user.profile.imageURLWithDimension(dimension) 

答案 1 :(得分:1)

Swift 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)

谢谢阿米特

答案 2 :(得分: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);
}

答案 3 :(得分: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)")
    }
}

这是它为我工作的代码。它是Swift 5的@Techbee的编辑。我正在使用图像视图显示图像,它具有75x75的帧,并且API返回的图像是225x225 jpg。