743:'<'处的意外令牌发生在轨道上的红宝石中使用picasa gem

时间:2018-02-26 13:48:42

标签: ruby-on-rails ruby picasa google-photos

我想在rails web应用程序上的ruby上使用Picasa网络相册数据API从谷歌照片中获取图片。

然而,错误

PhotosController #photo中的JSON :: ParserError 743:'<'

处的意外标记

发生在代码@album_list= client.album.list

源代码在这里。

require 'signet/oauth_2/client'
require 'google/apis'
require 'picasa'

class PhotosController < ApplicationController

  def photo
    client = Picasa::Client.new(user_id: "hoge@gmail.com", access_token: get_access_token)
    @album_list = client.album.list


  end

  private

    def get_access_token
      signet = Signet::OAuth2::Client.new(
        authorization_uri: 'https://accounts.google.com/o/oauth2/auth',
        client_id: Rails.application.secrets.google[:api][:client_id],
        client_secret: Rails.application.secrets.google[:api][:client_secret],
        token_credential_uri: "https://www.googleapis.com/oauth2/v3/token",
        scope: 'email profile',
        refresh_token: Rails.application.secrets.google[:api][:refresh_token]
      )
      signet.refresh!
      signet.access_token                
    end     

end

我认为client.album.list不是json而是xml。 但是,picasa gem需要json格式......

版本是

signet (0.8.1)
google-api-client (0.19.8)
googleauth (0.6.2)
picasa (0.9.1)
Rails 5.1.5
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

如何解决这个问题?

抱歉我的英语不好。 请告诉我缺少的信息。

1 个答案:

答案 0 :(得分:0)

他们的github页面上有一个issue。我认为宝石在一段时间内没有更新,但提出此问题的人包括以下修复:

  Picasa::HTTP.instance_variable_get(:@default_options)[:headers]['User-Agent'].sub!(/ \(gzip\)/, '')

你可以把它放在config/initializers/picasa.rb