I set up Oauth2 authentication with Zapier for Seviipay.com recently and figured it was worth a short post on the gotchas I encountered.
The biggest problem I had was with the Refresh token configuration. I would do a test connection, validate that I wanted to give Zapier access, send a test notification and it would work. Then an hour later I get an email from Zapier that they got a 401 error and are turning off my integration. The issues were that Doorkeeper does not enable refresh tokens by default and that Zapier does not pass the client ID or secret by default to the refresh api.
Below is my doorkeeper.rb with all comments removed. I had to uncomment the line for
Doorkeeper.configure do orm :active_record resource_owner_authenticator do current_user || warden.authenticate!(scope: :user) end admin_authenticator do |_routes| current_user || warden.authenticate!(scope: :user) end access_token_expires_in 2.hours use_refresh_token end
Then in Zapier I just had to update my request options to include the client id and client secret.
One other issue I ran into is that Doorkeeper requires you to set a SCOPE. I just put the string ‘READ’ in for my scope and it seems to be working.