连接 Quickbooks:Oauth 问题,使用 qbo_api 的 GrantUrl 错误
Connecting with Quickbooks: Oauth Troubles, GrantUrl Error using qbo_api
可能与 Ruby on Rails integration with Quickbooks not working
重复
我意识到这是一个纯粹的编码相关错误。由于我现在对 rails 框架的了解有限,我无法让我的 rails 应用程序连接到 Quickbooks。使用此 gem https://github.com/minimul/qbo_api,我在我的网络应用程序上获得了按钮。但是,我的 granturl 代码部分仍然出现路由错误。
我的控制台中的命令 ruby App.rb 运行良好。但是在我的 rails 应用程序中集成 Sinatra 代码会导致此错误。
这是我在config/initializers
的家App.rb
class HomeApp < Sinatra::Base
require "bundler/setup"
require 'sinatra'
require 'json'
require 'openssl'
require 'base64'
require 'omniauth'
require 'omniauth-quickbooks'
require 'dotenv'
require 'qbo_api'
Dotenv.load "#{__dir__}/../.env"
PORT = 3000
CONSUMER_KEY = 'blah blah'
CONSUMER_SECRET = 'blah blah'
set :port, PORT
use Rack::Session::Cookie, secret: '34233adasf'
use OmniAuth::Builder do
....
....
end
在我的 config.ru 我有以下内容
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Dynopoker.configure do |config|
config.address = 'http://wakemydyno.com'
require "HomeApp"
控件成功传递到我的index.erb文件,但此时抛出错误
<script>
intuit.ipp.anywhere.setup({
grantUrl: "http://localhost:<%= @port %>/auth/quickbooks",
我使用 rails 4 和 ruby 2,我的错误是
No route matches [GET] "/auth/quickbooks"
幸好,在意识到这个解决方案的答案时,我被允许沉浸在自己的愚蠢中。
所以我改变了我的 routes.rb 如下:
Rails.application.routes.draw do
get "/" => HomeApp, :anchor =>false
match '/auth/:provider/callback' => 'quickbooks#callback', via: [:get,:post]
我还删除了
'require HomeApp'
来自我的 config.rufile.
的行
基本上我创建了一个 quickbooks 控制器并在控制器内添加了 callback.html.erb 文件用于回调操作。我的代码没有使用 Sinatra 应用程序进行回调,而是仅使用此 quickbooks 路由进行回调。其余代码完全来自 Sinatra 代码。
不知道这是否是使用 gem 的正确方法。但因为它有效,我现在坚持使用它。
可能与 Ruby on Rails integration with Quickbooks not working
重复我意识到这是一个纯粹的编码相关错误。由于我现在对 rails 框架的了解有限,我无法让我的 rails 应用程序连接到 Quickbooks。使用此 gem https://github.com/minimul/qbo_api,我在我的网络应用程序上获得了按钮。但是,我的 granturl 代码部分仍然出现路由错误。
我的控制台中的命令 ruby App.rb 运行良好。但是在我的 rails 应用程序中集成 Sinatra 代码会导致此错误。
这是我在config/initializers
的家App.rbclass HomeApp < Sinatra::Base
require "bundler/setup"
require 'sinatra'
require 'json'
require 'openssl'
require 'base64'
require 'omniauth'
require 'omniauth-quickbooks'
require 'dotenv'
require 'qbo_api'
Dotenv.load "#{__dir__}/../.env"
PORT = 3000
CONSUMER_KEY = 'blah blah'
CONSUMER_SECRET = 'blah blah'
set :port, PORT
use Rack::Session::Cookie, secret: '34233adasf'
use OmniAuth::Builder do
....
....
end
在我的 config.ru 我有以下内容
require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Dynopoker.configure do |config|
config.address = 'http://wakemydyno.com'
require "HomeApp"
控件成功传递到我的index.erb文件,但此时抛出错误
<script>
intuit.ipp.anywhere.setup({
grantUrl: "http://localhost:<%= @port %>/auth/quickbooks",
我使用 rails 4 和 ruby 2,我的错误是
No route matches [GET] "/auth/quickbooks"
幸好,在意识到这个解决方案的答案时,我被允许沉浸在自己的愚蠢中。
所以我改变了我的 routes.rb 如下:
Rails.application.routes.draw do
get "/" => HomeApp, :anchor =>false
match '/auth/:provider/callback' => 'quickbooks#callback', via: [:get,:post]
我还删除了
'require HomeApp'
来自我的 config.rufile.
的行基本上我创建了一个 quickbooks 控制器并在控制器内添加了 callback.html.erb 文件用于回调操作。我的代码没有使用 Sinatra 应用程序进行回调,而是仅使用此 quickbooks 路由进行回调。其余代码完全来自 Sinatra 代码。
不知道这是否是使用 gem 的正确方法。但因为它有效,我现在坚持使用它。