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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

1035閲覧

Django: Facebookで発行したアクセストークンをPostmanでテストしたら「AccessToken matching query does not exist」と返ってきてしまう

takumiURIRIN

総合スコア10

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/08/16 13:59

###前提・実現したいこと
Python(Django)でUBER EATs風のアプリを作っています。

注文を追加するAPIをPostmanでテストした際に「AccessToken matching query does not exist.」というエラーが発生してしまっています。

アクセストークンはFacebookで発行したものです。
https://developers.facebook.com/tools/accesstoken

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

DoesNotExist at /api/customer/order/add/ AccessToken matching query does not exist. Request Method: POST Request URL: http://localhost:8000/api/customer/order/add/?access_token=kNhEuvGmjPbXw1jaN3GIwWKrLyRuTv&restaurant_id=1&address=17%20BKK1&order_details=[%7B%22meal_id%22:%201,%20%22quantity%22:%202%7D] Django Version: 1.11.4 Exception Type: DoesNotExist Exception Value: AccessToken matching query does not exist. Exception Location: /Users/admin/Desktop/myvirtualenv/foodtasker/lib/python3.6/site-packages/django/db/models/query.py in get, line 380 Python Executable: /Users/admin/Desktop/myvirtualenv/foodtasker/bin/python Python Version: 3.6.0 Python Path: ['/Users/admin/Desktop/foodtasker', '/Users/admin/.pyenv/versions/3.6.0/lib/python36.zip', '/Users/admin/.pyenv/versions/3.6.0/lib/python3.6', '/Users/admin/.pyenv/versions/3.6.0/lib/python3.6/lib-dynload', '/Users/admin/Desktop/myvirtualenv/foodtasker/lib/python3.6/site-packages'] Server time: Wed, 16 Aug 2017 12:53:34 +0000

###該当のソースコード

Python

1@csrf_exempt 2def customer_add_order(request): 3 """ 4 params: 5 access_token 6 restaurant_id 7 address 8 order_details (json format), example: 9 [{"meal_id": 1, "quantity": 2},{"meal_id": 2, "quantity": 3}] 10 stripe_token 11 12 return: 13 {"status": "success"} 14 """ 15 16 if request.method == "POST": 17 # Get token 18 access_token = AccessToken.objects.get(token = request.POST.get("access_token"), 19 expires__gt = timezone.now()) 20 21 # Get profile 22 customer = access_token.user.customer 23 24 # Check whether customer has any order that is not delivered 25 if Order.objects.filter(customer = customer).exclude(status = Order.DELIVERED): 26 return JsonResponse({"status": "failed", "error": "Your last order must be completed."}) 27 28 # Check Address 29 if not request.POST["address"]: 30 return JsonResponse({"status": "failed", "error": "Address is required."}) 31 32 # Get Order Details 33 order_details = json.loads(request.POST["order_details"]) 34 35 order_total = 0 36 for meal in order_details: 37 order_total += Meal.objects.get(id = meal["meal_id"]).price * meal["quantity"] 38 39 if len(order_details) > 0: 40 # Step 1 - Create an Order 41 order = Order.objects.create( 42 customer = customer, 43 restaurant_id = request.POST["restaurant_id"], 44 total = order_total, 45 status = Order.COOKING, 46 address = request.POST["address"] 47 ) 48 49 # Step 2 - Create Order details 50 for meal in order_details: 51 OrderDetails.objects.create( 52 order = order, 53 meal_id = meal["meal_id"], 54 quantity = meal["quantity"], 55 sub_total = Meal.objects.get(id = meal["meal_id"]).price * meal["quantity"] 56 ) 57 58 return JsonResponse({"status": "success"})

###補足情報
python-3.6.0

dj-database-url==0.4.2
Django==1.11.4
gunicorn==19.7.1
olefile==0.44
Pillow==4.2.1
pytz==2017.2
whitenoise==3.3.0
psycopg2==2.6.2
django-rest-framework-social-oauth2==1.0.8
django-bootstrap3==9.0.0
djangorestframework==3.4.3

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

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

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

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

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

guest

回答1

0

私も同じ勉強をしていて、同じ場所ではまりました。
Postmanでパラメタを設定する際に、
Authorization Headers Body raw binary
となっている部分の、Bodyを選択し、
その中でform-dataを選択してパラメタを指定するとうまくいくと思います。

投稿2018/10/01 12:59

JQinglong

総合スコア19

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問