地方でリモートワーク in Iwate

東京の受託開発会社でリモートワークしてます。

google oauth2でrefresh_tokenが返ってこない時に試してみること

googlecode.blogspot.jp

railsでgoogle adwords apiを使う案件があるのですが、refresh_tokenが返ってきたり返ってこなかったりしたのでメモ。

結論から言うと、下記パラメータをリクエストのURLに必ず付与してあげるとrefresh_tokenが必ず返ってきます。

  • approval_prompt=force : 認可画面をスキップしない
  • access_type=offline : オフラインでAPIを使う

作成したクラスです。(Baseのままがいけてない)

GoogleApiHandler::Base.new.oauth2_authenticate_urlでrefresh_tokenが必ず返ってくる認証URLが返ってきます。

require 'adwords_api'
module GoogleApiHandler
  class Base
    def initialize
      adword_api_client
    end

    def oauth2_authenticate_url
      begin
        api.authorize(oauth2_callback: login_callback_url)
      rescue AdsCommon::Errors::OAuth2VerificationRequired => e
        "#{e.oauth_url.to_s}&approval_prompt=force"
      end
    end

    # response example
    # {
    #      :access_token => "xxxxxxxxxxxxxxxxxxx",
    #     :refresh_token => "xxxxxxxxxx",
    #         :issued_at => 2018-01-19 12:04:24 +0900,
    #        :expires_in => 3600,
    #          :id_token => nil
    # }

    def response(oauth2_verification_code)
      @response ||= api.authorize(oauth2_callback: login_callback_url, oauth2_verification_code: oauth2_verification_code)
    end

    private

    attr_reader :api

    def adword_api_client
      @api = AdwordsApi::Api.new(File.join(Rails.root, 'config', 'adwords_api.yml'))
    end

    def login_callback_url
      ENV.fetch('GOOGLE_OAUTH2_REDIRECT_URL')
    end
  end
end

ubuntuで日本語入力ができなくなった対処法

環境

Ubuntu16.04 LTS

確認

  • 右上のキーボードマークが表示されなくなった
  • キーボード切り替えショートカットを押しても入力が切り替わらない

ゴミファイルの削除

  • どうやらゴミファイルが邪魔しているようなので削除する
$ rm -rf "$HOME/.cache/ibus/"
$ cd ~/.mozc
$ rm -f .session.ipc .server.lock

結果

  • 右上キーボード表示され、ショートカットで切り替えができるようになった