LoginSignup
0
0

More than 5 years have passed since last update.

mauticとrailsを連携するときにOAuth2認証でハマった

Last updated at Posted at 2018-07-07

前提

mautic、railsってそもそも何なの?って説明は省きます。

この記事を書いたきっかけ

RailsのサイトにMauticを導入する方法
公式、先駆者の記事を見て構築すればmauticとrailsをすんなり連携できるのですが
認証周りでハマってしまいかなり時間を無駄にしてしまったためメモとして残します。

スクリプト作成

rails側のUserとmauticのcontactでemailが一致するデータに対して名前を更新するスクリプトを作成

rails→mautic連携するスクリプト

task_name.rb
namespace :task_name do
  desc "実行処理の説明"
  task :create, ['name'] => :environment do |task, args|
    conn = Mautic::Connection.last
    # emailが一致しているデータをMauticへ連携する(実際の業務ではDBから取得した値を使うでしょう)
    contact = conn.contacts.where(search: "email: dummy@dummy.co.jp").first 

    # ユーザ情報を格納する
    contact.firstname = "ほげ"
    contact.lastname = "ほげお"

    # ユーザ情報をMauticに保存する
    if contact.save then
      Rails.logger.info('success')
    else
      Rails.logger.error("error: #{contact.errors}")
    end
  end
end

実行してみた

なんかエラー出た・・・

$ rake task_name:create
rake aborted!
A refresh_token is not available
/Users/hoge/projects/rails/lib/tasks/task_name.rake:14:in `block (2 levels) in <main>'
Tasks: TOP => task_name:create
(See full trace by running task with --trace)

A refresh_token is not available

リフレッシュトークンが設定されてませんですよと:sob:
何か手順抜けたのか・・・
うーん、とりあえずgemの中身みたり、公式のドキュメント読んでみるしかないか:point_up:

色々調べてみた

mauticのgemやOauth2のgemのソースを読んでみたが
公式のPHPのアプリケーションでのHow toを読んで何が足りてないのか理解できた
How to Use the Mautic Rest API

かなりざっくり言うと先にtokenを発行しておいてとのこと:raised_hand:

解決方法

http://localhost:3000/mautic/connections/1/authorizeにアクセス

rails側のmautic_connectionsが更新され、tokenrefresh_tokenが発行できた:v:

   (0.1ms)  begin transaction
  ↳ /Users/hoge/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0/lib/active_record/log_subscriber.rb:98
  Mautic::Connections::Oauth2 Update (0.4ms)  UPDATE "mautic_connections" SET "token" = ?, "refresh_token" = ?, "updated_at" = ? WHERE "mautic_connections"."id" = ?  [["token", "hoge_token"], ["refresh_token", "hoge_refresh_token"], ["updated_at", "2018-07-07 16:23:32.467550"], ["id", 1]]
  ↳ /Users/hoge/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0/lib/active_record/log_subscriber.rb:98
   (3.0ms)  commit transaction

スクリーンショット 2018-07-08 1.30.37.png

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0