Google App Engine, pythonでapi用のエンドポイント作成方法
解決したいこと
現在ebayのapiを利用してpythonのプログラムを作成しようとしています。
現在、ebayでapiを利用するためには、’Marketplace account deletion notification endpoint’と’Verification token’の設定が必要なようです。
そこでGoogle app engineを利用してエンドポイントの作成を試みました。
ファイルはmain.py, app.yaml, requirements.txtの三つを作成しました。
しかし、デプロイをすると、URLでは「Service Unavailable」と表示されてしまいます。
また、ebayの「Event Notification Delivery Method」で先ほど記述した二つを入力し、saveをすると’Marketplace account deletion endpoint validation failed. Click here to learn more about setting up an endpoint.’と表示されてしまいます。
ebayのapiをgaeで利用できるようにしたいです。
例)
Ruby on RailsでQiitaのようなWebアプリをつくっています。
記事を投稿する機能の実装中にエラーが発生しました。
解決方法を教えて下さい。
作成したコード
import hashlib
from flask import Flask, request, jsonify
app = Flask(__name__)
verification_token = 'MCYーーーーーーーBVB'
endpoint = 'https://WATASINOPUROJEKUTO.uc.r.appspot.com/ebayApi/endpoint'
@app.route('/ebayApi', methods=['GET'])
def ebay_api():
challenge_code = request.args.get('challenge_code', '')
if challenge_code:
hash_object = hashlib.sha256()
hash_object.update(challenge_code.encode())
hash_object.update(verification_token.encode())
hash_object.update(endpoint.encode())
response_hash = hash_object.hexdigest()
return jsonify({'challengeResponse': response_hash}), 200
else:
return jsonify({'error': 'No challenge code provided'}), 400
if __name__ == '__main__':
# 本番環境では、WSGIサーバーを使ってアプリケーションを実行する
# 例えば、Gunicornを使う場合:
# gunicorn -w 4 -b 0.0.0.0:8080 your_flask_app:app
app.run(debug=False, host='0.0.0.0', port=8080)
runtime: python39
service: default
entrypoint: gunicorn -b :$PORT main:app
handlers:
- url: /ebayApi
script: auto
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
gae側で何か問題があるのではないかと考え、以下のような簡易的なコードをデプロイした結果問題なく’hello world’が表示されました。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'hello, world', 200
完全独学でgaeの利用は初めてなのに加えエンドポイントの作成?も初なのでわからないことだらけです。
色々調べてはみたのですが、ネット上にほとんどないのでこちらで質もさせていただきました。
お答えいただけると幸いです。