使用Google API客户端获取Gmail用户个人资料图片和名称 示例脚本:结果:注意:参考:

问题描述

Google API clientClass: Google::Apis::PeopleV1::NameGoogle::Apis::PeopleV1::Photo我怎么打这些端点?我尝试过

p = Google::Apis::PeopleV1::Photo.new
response = p.url

但是它返回nil。与GmailService相对的是像get_user_message这样的实例方法,我可以这样调用

@service = Google::Apis::GmailV1::GmailService.new
# authorization is done
response = @service.get_user_message(user_id,message_id)

它返回一个具有response的{​​{1}}对象,现在我想获取用户名和照片,但是找不到任何方法来访问此信息。如何使用API​​客户端检索用户名和照片?

解决方法

我认为,通过Gmail API中的users.messages.get方法检索的值不包含“用户个人资料图片”。 Ref例如,为了检索用户个人资料照片的URL,如何使用People API中的people.connections.list方法?示例脚本如下。

示例脚本:

service = Google::Apis::PeopleV1::PeopleServiceService.new
service.authorization = authorize
response = service.list_person_connections(
    'people/me','page_size': 1000,'person_fields': "names,emailAddresses,photos"
)
puts "No connections" if response.connections.empty?
result = response.connections.map {|person| {
    'resourceName': person.resource_name,'email': person.email_addresses[0].value,'photos': person.photos.map {|e| e.url}
}}
puts result

结果:

运行上述脚本时,返回以下结果。

[
  {"resourceName": "people/###","email": "###","photos": ["https://###"]},{"resourceName": "people/###","photos": ["https://###","https://###"]},]
  • phtots的URL是用户照片图像的URL。

注意:

  • 在这种情况下,otherContacts.list的方法似乎不返回用户的照片数据。

参考: