質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1595閲覧

PythonでShopifyのGraphQL Admin API にアクセスするとURL Open Errorとなる

sdanggaki.cw

総合スコア11

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

Shopify

Shopifyとは、ECサイト向けのプラットフォームを提供している企業。さらに、その企業が提供するオンラインストアやPOSシステムを指します。高いデザイン性とカスタマイズ性が評価され、世界各国のネットショップで使用されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/01/31 22:37

編集2022/02/01 11:24

前提・実現したいこと

PythonでShopifyのGraphQL Admin API を利用し、shopifyストアの情報を取得しようとしています。
ShopifyAPIモジュールを使用して以下のコードを実行したところエラーが発生するため解決したいです。
テストストアで実行した時は動いていたのですが、本番環境に適用しようとしたところエラーを吐くようになりました。
このエラーの原因がわからず、対処に困っています。どなたかご教授願えないでしょうか。

本番のShopでのアクセストークンの発行は済んでいます。

Mac OS
python 3.9.2

発生している問題・エラーメッセージ

Traceback (most recent call last): File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 1346, in do_open h.request(req.get_method(), req.selector, req.data, headers, File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 1255, in request self._send_request(method, url, body, headers, encode_chunked) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 1301, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 1250, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 1010, in _send_output self.send(msg) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 950, in send self.connect() File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 1417, in connect super().connect() File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/http/client.py", line 921, in connect self.sock = self._create_connection( File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/socket.py", line 822, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/socket.py", line 953, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 8] nodename nor servname provided, or not known During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/pinkbpompom/spiralturn_lineBot/test.py", line 17, in <module> responce = shopify.GraphQL().execute(query=query) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/site-packages/shopify/resources/graphql.py", line 27, in execute response = urllib.request.urlopen(req) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 214, in urlopen return opener.open(url, data, timeout) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 517, in open response = self._open(req, data) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 534, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 494, in _call_chain result = func(*args) File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 1389, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/Users/pinkbpompom/.pyenv/versions/3.9.2/lib/python3.9/urllib/request.py", line 1349, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>

該当のソースコード

Python

1import shopify 2from dotenv import load_dotenv 3import os 4 5load_dotenv() 6api_key = os.environ.get('api_key') 7secret = os.environ.get('api_secret_key') 8shop = os.environ.get('shop') 9token = os.environ.get('token') 10 11shopify.Session.setup(api_key=api_key,secret=secret) 12session = shopify.Session(shop,version='2021-10',token=token) 13shopify.ShopifyResource.activate_session(session) 14 15query = '{orders(first:5){edges{node{ id name }}}}' 16responce = shopify.GraphQL().execute(query=query) 17result = json.loads(responce) 18print(result) 19 20shopify.ShopifyResource.clear_session()

補足情報

アクセスするShopのアクセストークンは正常に取得済みです。
認証に必要なAPIキーやシークレット、アクセストークンなどの情報は、ローカルではenvファイルに、HerokuではHerokuの環境変数に設定しています。
ローカルでコードを実行しても、Herokuにデプロイして実行してもエラーとなります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ショップURLの指定が間違っていただけでした。

Python

1# 省略 2 3shop = os.environ.get('shop') 4# ↑の中身がhttps:// ~ を省いたURLになっていた 5 6session = shopify.Session(shop,version='2021-10',token=token) 7

ショップURLの指定を改めて修正したところ、正常に機能しました。

投稿2022/02/01 22:41

sdanggaki.cw

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問