ขอปรึกษาครับ เราจะ ใช้ url ไป call api มาได้อย่างไรหรอครับ ถามแบบคนไม่รู้เลยและไม่ถนัดโค้ดครับ
Code (PHP)
$response = file_get_contents('https://api_url');
$response = json_decode($response);
หรือใช้ cURL
หรือดูใน POSTMAN
Date :
2021-08-17 12:56:31
By :
TheGreatGod_of_Death
ตกลงคุณจะทำอะไร
อะไรคือ create, get, delete หมายถึง db?
ถ้าใช่ก็ต้องบอกยี่ห้อด้วยเพราะแต่ละตัวไม่เหมือนกัน
แต่ถ้าไม่...กรุณาอธิบายเพิ่มเติ่ม สิ่งที่ต้องการรู้
Date :
2021-08-17 15:28:40
By :
TheGreatGod_of_Death
พื้นฐานการใช้ python ก็ตาม No.8
ส่วน setinelone ผมไม่รู้จัก...รอคนเคยใช้มาช่วย
เคยเห็นแต่ SentinelOne ซึ่งเป็น Enterprise
และมีหลาย platforms ถ้าเป็นอย่างหลัง
แนะนำสอบถาม Support โดยตรง จะได้คุ้มค่ากับราคา (ตั้งแพง)
และจะได้คำตอบที่ชัดเจนกว่า
Date :
2021-08-17 18:12:09
By :
TheGreatGod_of_Death
ตอบความคิดเห็นที่ : 10 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-17 18:12:09
รายละเอียดของการตอบ ::
Quote: ขออภัย พิมพ์ setinelone ผิดครับ
ที่จริงคืออันนี้เลยครับ SentinelOne
ทาง SentinelOne เขามีเอกสารในการ create, get, delete ครับ แต่ที่ผมเข้ามาถามในเว็บนี้ คือ ผมไม่รู้วิธีทำ เพราะในเอกสารไม่ได้บอกว่าคุณต้องทำอย่างนี้ .เอกสารบอกแค่พวก authorization ใน header ไม่รู้ใส่ยังไง และให้ข้อมูลมาเป็น json
เข้าใจว่าข้อมูลที่ให้มาเป็น json ให้เรา create เข้าไป ผมเข้าใจถูกไหมครับ
ผมทำถูกไหมครับ ไม่ถูกจุดไหนขอคำแนะนำด้วยครับ **code ที่ให้เป็น ภาษา python นะครับ**
Code (PHP)
import requests
import json
api_url = "https://apne1-1001.sentinelone.net/web/api/v2.1/threat-intelligence/iocs"
headers = {
"Content-Type": "application/json",
# token ที่ให้มา
"Authorization": "TrosYLtWA2lPGCKINvRG403vvSQiYDAxMpgdtYP0e0YXTDw2Xgi8jdJnRtuOaTzfiggBD3ngENJIkkff"
}
# ่data json ที่ให้มา
todo = {
"filter" : {
"accountIds" : ["900000150992118524"]
},
"data" : [ {
"externalid" : "bb0f3f34-8960-4444-bb38-lf556ebd7d8",
"source" : "EA",
"type" : "DNS",
"value": "mreallybadsite.net",
"method" : "EQUALS",
"name" : "se503.win-indicator",
"descciption" : "se503.win-description",
"category" : "threats",
"patternType" : " ",
"pattern" : " ",
"validUntil" : "1624862946",
"creationTime" : "1604862946",
"metadata" : " ",
"mitreTactic" : [ ] ,
"intrusionSets" : [ ],
"reference " : " ",
"LhreaLActors" : [ ]
}]
}
response = requests.post(api_url, json=todo, verify=False, headers=headers)
# ตรงนี้จะ response ข้อมูลมาให้ใช่ไหมครับ
response.json()
# ไม่แน่ใจตรงส่วนนี้ ต้องใส่ไหมครับ
response.status_code
ประวัติการแก้ไข 2021-08-17 19:19:20
Date :
2021-08-17 18:50:42
By :
chawin1
ตอบความคิดเห็นที่ : 10 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-17 18:12:09
รายละเอียดของการตอบ ::
Quote: ผมทำถูกไหมครับ ไม่ถูกจุดไหนขอคำแนะนำด้วยครับ **code ที่ให้เป็น ภาษา python นะครับ**
Code (PHP)
import requests
import json
api_url = "https://apne1-1001.sentinelone.net/web/api/v2.1/threat-intelligence/iocs"
headers = {
"Content-Type": "application/json",
# token ที่ให้มา
"Authorization": "TrosYLtWA2lPGCKINvRG403vvSQiYDAxMpgdtYP0e0YXTDw2Xgi8jdJnRtuOaTzfiggBD3ngENJIkkff"
}
# ่data json ที่ให้มา
todo = {
"filter" : {
"accountIds" : ["900000150992118524"]
},
"data" : [ {
"externalid" : "bb0f3f34-8960-4444-bb38-lf556ebd7d8",
"source" : "EA",
"type" : "DNS",
"value": "mreallybadsite.net",
"method" : "EQUALS",
"name" : "se503.win-indicator",
"descciption" : "se503.win-description",
"category" : "threats",
"patternType" : " ",
"pattern" : " ",
"validUntil" : "1624862946",
"creationTime" : "1604862946",
"metadata" : " ",
"mitreTactic" : [ ] ,
"intrusionSets" : [ ],
"reference " : " ",
"LhreaLActors" : [ ]
}]
}
response = requests.post(api_url, json=todo, verify=False, headers=headers)
# ตรงนี้จะ response ข้อมูลมาให้ใช่ไหมครับ
response.json()
# ไม่แน่ใจตรงส่วนนี้ ต้องใส่ไหมครับ
response.status_code
Date :
2021-08-17 19:15:24
By :
chawin1
ต้องดูเอกสารที่เขาให้มา ถ้าไม่มีก็ขอเขาไป ขอตัวอย่างเลยก็ได้ เราจ่ายแล้วอย่าไปเกรงใจ
เพราะที่คุณถามมาเกี่ยวข้องกับฝั่ง server คนนอกอย่างผมหารู้ได้ไม่
จะถูกหรือไม่ต้องดูโครงสร้างภายในประกอบด้วย
เบื้องต้นผมลองคัดลอกไปรันดูแล้ว ได้ error กลับมาว่า ..Authentication Fail
สิ่งที่อาจเป็นปัญหาได้ คือ endpoint(url), header(token), หรือแม้แต่รูปแบบ json ไม่ถูกต้อง
ตามที่เขา(ผู้ให้บริการหรือระบบ) หรือเรา(ผู้ใช้บริการ) กำหนดไว้
วิธีเช็คว่ากระบวนการ request ถูกหรือไม่ ให้ดูจาก response ตามที่ผมบอก
ถ้าสำเร็จจะได้ status_code = 200
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
หรือถ้าไม่มั่นใจนำข้อความ error มาโพสต์ด้วย
Date :
2021-08-18 12:12:35
By :
TheGreatGod_of_Death
ตอบความคิดเห็นที่ : 15 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-18 12:12:35
รายละเอียดของการตอบ ::
Quote: ครับ ถามไปแล้วครับ
token ที่เขาให้มา เหมือนฝั่งเขาติดปัญหาครับ
ตอนนี้ผมรอ token ตัวใหม่อยู่ครับ ถ้าได้ตัวใหม่มา เดี๋ยวผมลองอีกรอบครับ ถ้ายังติดปีญหาเดี๋ยวผม นำโค้ดมาแป๊ะครับ
ขอถามเพิ่มเติ่มนะครับ
ถ้าสำเร็จจะได้ status_code response = 200 แสดงว่าตรง todo ที่เป็นข้อมูล json คือ ส่งสำเร็จใช่ไหมครับ
Code (PHP)
Quote: json ที่เขาให้มาตาม format นีเลยครับ ผมไม่ได้แก้อะไรใน format เลยครับ
{
"filter" : {
"accountIds" : ["900000150992118524"]
},
"data" : [ {
"externalid" : "bb0f3f34-8960-4444-bb38-lf556ebd7d8",
"source" : "EA",
"type" : "DNS",
"value": "mreallybadsite.net",
"method" : "EQUALS",
"name" : "se503.win-indicator",
"descciption" : "se503.win-description",
"category" : "threats",
"patternType" : " ",
"pattern" : " ",
"validUntil" : "1624862946",
"creationTime" : "1604862946",
"metadata" : " ",
"mitreTactic" : [ ] ,
"intrusionSets" : [ ],
"reference " : " ",
"LhreaLActors" : [ ]
}]
}
Date :
2021-08-18 13:43:05
By :
chawin1
จาก No.18 ถ้าเปลี่ยน endpoint ให้ถูกต้อง
post สำเร็จ
url = "https://jsonplaceholder.typicode.com/posts"
response
{
"tck1": "tcv1",
"tck2": "tcv2",
"tck3": "tcv3",
"id": 101
}
status_code = 201
จากลิงค์ wiki ที่ให้ไป
Quote: 201 Created
The request has been fulfilled, resulting in the creation of a new resource.
ตัวอย่าง put
import requests
from requests.structures import CaseInsensitiveDict
url = "https://jsonplaceholder.typicode.com/posts/100" # สังเกต endpoint
headers = CaseInsensitiveDict()
headers["Content-Type"] = "application/json"
data = """
{
"tck1" : "tcv1_updated",
"tck2" : "tcv2_updated",
"tck3" : "tcv3_updated"
}
"""
resp = requests.put(url, headers=headers, data=data) # update ใช้ put()
print(resp.text)
print("status_code = " + str(resp.status_code))
response
{
"tck1": "tcv1_updated",
"tck2": "tcv2_updated",
"tck3": "tcv3_updated",
"id": 100
}
status_code = 200
สุดท้าย delete ก็ใช้ delete() method
ลองฝึกใช้ดูครับ
Date :
2021-08-18 15:09:28
By :
TheGreatGod_of_Death
Load balance : Server 03