Отсутствует параметр client_id или access_token URL.(InstagramApi :: BadRequest) - PullRequest
0 голосов
/ 06 июня 2019

мой код возвращает InstagramApi :: BadRequest мой идентификатор клиента и доступ к токену, все в порядке! Я хочу создать токен с веб-сайтом и нормальный процесс!

require 'instagram_api_client'
require 'dotenv'

Dotenv.load
def login_insta

    client.new = InstagramApi.config do |config|
        config.access_token = ENV["INSTA_ACCESS_TOKEN"]
        config.client_id = ENV["INSTA_CLIENT_ID"]
        config.client_secret = ENV["INSTA_CLIENT_SECRET"]
    end
    return client
end

def auto_follow_test
    #ary = Array.new

      search_user = InstagramApi.user.search('75')

    #ary << search


   # puts ary[0]
   return search_user
end

auto_follow_test

Traceback (most recent call last):
        4: from lib/app.rb:28:in `<main>'
        3: from lib/app.rb:19:in `auto_follow_test'
        2: from /home/mhd/.rvm/gems/ruby-2.5.1/gems/instagram_api_client-0.2.1/lib/instagram_api/common.rb:10:in `search'
        1: from /home/mhd/.rvm/gems/ruby-2.5.1/gems/instagram_api_client-0.2.1/lib/instagram_api/client.rb:37:in `make_request'
/home/mhd/.rvm/gems/ruby-2.5.1/gems/instagram_api_client-0.2.1/lib/instagram_api/client.rb:53:in `parse_failed': Missing client_id or access_token URL parameter. (InstagramApi::BadRequest)

1 Ответ

0 голосов
/ 09 июня 2019

Ваш пример кода - беспорядок:

  1. Вы определяете метод login_insta для настройки учетных данных, но никогда не вызываете метод для запуска конфигурации.

  2. Если вы действительно позвоните login_insta, он все равно не будет работать должным образом из-за вызова client.new, который не объяснен в вашем примере кода и противоречит инструкциям от автора гема о том, как настроить учетные данные.

Это тот случай, когда сокращение вашего кода до минимального, полного, проверяемого примера , вероятно, решит проблему:

require 'instagram_api_client'
require 'dotenv'

Dotenv.load

# Set the global configuration for the gem per the instructions at:
# https://github.com/agilie/instagram_api_gem#usage
InstagramApi.config do |config|
  config.access_token = ENV["INSTA_ACCESS_TOKEN"]
  config.client_id = ENV["INSTA_CLIENT_ID"]
  config.client_secret = ENV["INSTA_CLIENT_SECRET"]
end

InstagramApi.user.search('75')

Я не могу самостоятельно проверить, что это решает проблему, потому что у меня нет доступа к API Instagram, но, учитывая инструкции в README для драгоценного камня, это должно быть решением.

Когда вы собираетесь включить это решение в свой код, просто убедитесь, что вызов InstagramApi.config выполняется только один раз и перед выполнением каких-либо вызовов API. Его не нужно заключать в вызов метода. (и не следует, потому что его нужно запускать только один раз, а после запуска он останется в силе в течение всего жизненного цикла процесса Ruby)

...