问题描述
Google API client有Class: Google::Apis::PeopleV1::Name和Google::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的方法似乎不返回用户的照片数据。