นี่คือตัวอย่างทั้งหมดของการใช้งานใน cURL และใน Python - สำหรับการอนุญาตและการเรียก API
cURL
1. การอนุญาต
คุณได้รับข้อมูลการเข้าถึงดังนี้:
Username: johndoe
Password: zznAQOoWyj8uuAgq
Consumer Key: ggczWttBWlTjXCEtk3Yie_WJGEIa
Consumer Secret: uuzPjjJykiuuLfHkfgSdXLV98Ciga
ซึ่งคุณสามารถเรียกใน cURL ดังนี้:
curl -k -d "grant_type=password&username=Username&password=Password" \
-H "Authorization: Basic Base64(consumer-key:consumer-secret)" \
https://somedomain.test.com/token
หรือสำหรับกรณีนี้จะเป็น:
curl -k -d "grant_type=password&username=johndoe&password=zznAQOoWyj8uuAgq" \
-H "Authorization: Basic zzRjettzNUJXbFRqWENuuGszWWllX1iiR0VJYTpRelBLZkp5a2l2V0xmSGtmZ1NkWExWzzhDaWdh" \
https://somedomain.test.com/token
คำตอบจะเป็นดังนี้:
{
"access_token": "zz8d62zz-56zz-34zz-9zzf-azze1b8057f8",
"refresh_token": "zzazz4c3-zz2e-zz25-zz97-ezz6e219cbf6",
"scope": "default",
"token_type": "Bearer",
"expires_in": 3600
}
2. เรียก API
นี่คือวิธีที่คุณเรียก API บางตัวที่ใช้การตรวจสอบสิทธิ์จากด้านบน Limit
และoffset
เป็นเพียงตัวอย่างของ 2 พารามิเตอร์ที่ API สามารถนำไปใช้ได้ คุณต้องaccess_token
แทรกจากด้านบน"Bearer "
ดังนั้นนี่คือวิธีที่คุณเรียก API บางตัวด้วยข้อมูลการตรวจสอบความถูกต้องจากด้านบน:
curl -k -X GET "https://somedomain.test.com/api/Users/Year/2020/Workers?offset=1&limit=100" -H "accept: application/json" -H "Authorization: Bearer zz8d62zz-56zz-34zz-9zzf-azze1b8057f8"
Python
สิ่งเดียวกันจากด้านบนที่ใช้ใน Python ฉันใส่ข้อความลงในความคิดเห็นเพื่อให้สามารถคัดลอกวางโค้ดได้
import base64
import requests
username = 'johndoe'
password= 'zznAQOoWyj8uuAgq'
consumer_key = 'ggczWttBWlTjXCEtk3Yie_WJGEIa'
consumer_secret = 'uuzPjjJykiuuLfHkfgSdXLV98Ciga'
consumer_key_secret = consumer_key+":"+consumer_secret
consumer_key_secret_enc = base64.b64encode(consumer_key_secret.encode()).decode()
headersAuth = {
'Authorization': 'Basic '+ str(consumer_key_secret_enc),
}
data = {
'grant_type': 'password',
'username': username,
'password': password
}
response = requests.post('https://somedomain.test.com/token', headers=headersAuth, data=data, verify=True)
j = response.json()
{
"access_token": "zz8d62zz-56zz-34zz-9zzf-azze1b8057f8",
"refresh_token": "zzazz4c3-zz2e-zz25-zz97-ezz6e219cbf6",
"scope": "default",
"token_type": "Bearer",
"expires_in": 3600
}
headersAPI = {
'accept': 'application/json',
'Authorization': 'Bearer '+j['access_token'],
}
params = (
('offset', '0'),
('limit', '20'),
)
response = requests.get('https://somedomain.test.com/api/Users/Year/2020/Workers', headers=headersAPI, params=params, verify=True)
api_response = response.json()
Traceback (most recent call last): File "bearerreturn.py", line 6, in <module> print requests.post(endpoint,data=data,headers=headers).json() TypeError: 'dict' object is not callable
โค้ดด้านล่าง:import requests endpoint = "https://xforce-api.mybluemix.net:443/api/ip" data = {"ip":"1.1.2.3"} headers = {"Bearer token":"TOKEN WAS INSERTED HERE"} print requests.post(endpoint,data=data,headers=headers).json()
ไอเดียใด ๆ ?