Tag: google contacts

如何在ruby中访问Google Contacts API

我正在努力访问Google Contacts API。首先我尝试了google-api-ruby-client gem但事实certificate它不支持Contacts API 。 下一个镜头是google_contacts_apigem 。 我使用oauth2来访问身份validation密钥( 获取身份validation令牌指南问题 )。 但是在将令牌正确传递给api之后,它产生了一个错误。 `’: undefined method `[]’ for #` (NoMethodError). 这是我的代码。 # get token using oauth2 gem, and use it below in the google_contacts_api. google_contacts_user = GoogleContactsApi::User.new(token) contacts = google_contacts_user.contacts groups = google_contacts_user.groups # group methods group = groups[0] group.contacts puts group.contacts # contact methods puts […]

在Ruby中更新Google Contact Picture时出现问题

我正在尝试编写一个ruby应用程序来更新Google联系人照片,但我无法让上传工作。 我不确定我是否误解了Google API,但这是我到目前为止所做的: Net::HTTP.start(URI.parse(image_element.attributes[‘href’]).host) do |http| response, body = http.put(URI.parse(image_element.attributes[‘href’]).path, data, {‘If-Match’ => ‘*’, ‘content-type’=>’image/*’}) end Google Data API说: 每个联系人都有一个照片链接元素。 它的forms如下: href =’https://www.google.com/m8/feeds/photos/media/liz%40gmail.com/c9012de’gd:etag =’“KTlcZWs1bCp7ImBBPV43VUV4LXEZCXERZAc。”’> 无论联系人是否有相关照片,都会显示该元素。 如果联系人确实有照片,则该元素包含gd:etag属性,用于指定照片的ETag。 如果联系人没有照片,则没有gd:etag属性,href属性提供用于向联系人添加照片的URL。 要根据上面显示的元素添加或更新照片,请将带有PUT命令的新照片发送到以下url: https : //www.google.com/m8/feeds/photos/media/liz%40gmail.com/c9012de 。 请记住设置正确的“image / *”Content-Type标头。 要删除照片,请将HTTP DELETE请求发送到同一URL。 更新或删除照片时,请在HTTP请求的If-Match标头中发送照片的ETag。 或者,使用If-Match:*更新或删除,无论您是否拥有最新版本的照片。 任何人都可以看到我错在哪里? 更新和答案:我已经设法在StackOverflow和配合的帮助下使用它。 基本上错误的是设置了不正确的MIME类型(见下文),但我没有正确地使用Google对PUT请求进行身份validation。 我试图写的是一个脚本,用Gravatar中的图像更新任何遗漏的Google联系人照片(如果可能)。 一旦我开始工作,它工作得很好:设法匹配大约2-3个联系人。 我写了一篇关于脚本的博客文章,以防任何人想要运行它: http : //ashleyangell.com/2011/06/ruby-script-to-import-google-contact-photos-from-gravatar/

从gmail中的多个帐户导入联系人

我有一个rails应用程序,我正在使用omnicontacts gem从yahoo,gmail和outlook.Its导入联系人工作正常。但是一旦我从任何帐户导入联系人说gmail,并尝试从另一个帐户导入联系人它不会问我使用其他帐户登录以从中导入联系人。 这是我的omnicontacts initializer 。请帮助,我可以根据需要添加更多信息。 配置/初始化/ omnicontacts.rb Rails.application.middleware.use OmniContacts::Builder do importer :gmail, ENV[‘GMAIL_ID’], ENV[‘GMAIL_SECRET’], redirect_path: ‘/invites/gmail/contact_callback’, max_results: 1000 importer :yahoo, ENV[‘YAHOO_ID’], ENV[‘YAHOO_SECRET’], callback_path: ‘/invites/yahoo/contact_callback’, max_results: 1000 importer :outlook, ENV[‘OUTLOOK_APP_ID’], ENV[‘OUTLOOK_APP_KEY’], redirect_path: ‘/invites/outlook/contact_callback’, max_results: 1000 end

使用Google API Client,如何创建客户端

我正在努力使用Google API客户端: https : //github.com/google/google-api-ruby-client 具体来说,我想使用以下google_contacts_api.rb通过Google API客户端访问Google通讯录: https : //gist.github.com/lightman76/2357338dcca65fd390e2 我试图像这样使用google_contacts_api.rb (x是故意的,实际上是正确的密钥): require ‘./lib/google_contacts_api.rb’ auth = User.first.authentications.first client = OAuth2::Client.new(‘x’, ‘x’, :site => ‘https://accounts.google.com’) oauth2_object = OAuth2::AccessToken.new(client, auth.token) x = ContactList::GoogleContactsApi.new(client, oauth2_object).all_contacts 这是错误的undefined method得到’为#你的意思? gem` 我相信问题是我没有正确发送client ,我无法找到任何显示如何创建client文档或示例。 有关如何使其工作的任何建议? 谢谢

在Ruby上访问Google Contacts API

我很难访问Google Contacts API。 首先我尝试了google-api-ruby-client gem,但事实certificate它不支持Contacts API 。 下一个镜头是google_contacts_api gem,但我很难获得oauth_access_token_for_user和oAuth2 gem 。 当遵循oAuth2指令时,我不知道在authorization_code_value和Basic some_password放入什么。 我尝试了以下方法: require ‘oauth2’ client = OAuth2::Client.new(ENV[‘GOOGLE_CLIENT_ID’], ENV[‘GOOGLE_CLIENT_SECRET’], :site => ‘http://localhost:9292’) => #”/oauth/authorize”, :token_url=>”/oauth/token”, :token_method=>:post, :connection_opts=>{}, :connection_build=>nil, :max_redirects=>5, :raise_errors=>true}> client.auth_code.authorize_url(:redirect_uri => ‘http://localhost:9292’) => “http://localhost:9292/oauth/authorize?client_id=blabla.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A9292&response_type=code” token = client.auth_code.get_token(‘authorization_code_value’, :redirect_uri => ‘http://localhost:9292’, :headers => {‘Authorization’ => ‘Basic some_password’}) => Faraday::ConnectionFailed: Connection refused – connect(2) for […]