我试图在我的应用中进行谷歌登录工作,但有问题。
(不是谷歌加登录,我使用谷歌登录)
我跟着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;
...
}
答案 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];
}
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。