iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
WordPress

透過WordPress架設電商網站,並串接管理後台系列 第 18

«D18»新增 Ragic API 至 A2 Hosting 的 Python Flask

  • 分享至 

  • xImage
  •  

好的昨天我們把基礎建設弄好了,確認 Flask 是運作中,今天就可以先來基礎的學一點 Flask 吧!

透過 Flask 新增資料至 Ragic

這次會用到 requests,在開始的地方新增(原本的其他可以刪除沒關係~)

# 引入 flask
from flask import Flask
import requests

記得新增你的 base_url & api_key

# Ragic 設定
ragic_BASE_URL = 'ap2.ragic.com/xxx'
ragic_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

把前幾天學的程式碼貼上

方法是 GET,就是瀏覽器直接輸入網址(也是取得網頁的方法),而 WooCommerce Webhook 是 POST,但我們先確認 def 可行之後再修改~

# 這下你輸入 your_domain.com/webhook,就會執行啦!
@app.route('/', methods=['GET'])
# 進到 route 之後要執行的東東。新增訂單的 def
def new_order():
    params = {'api': '','v': 3}
    data = {
        表格編號 1: 'test',
    }
    ENDPOINT = f'https://{ragic_BASE_URL}/formsx/x'  # 在這個表單新增資料
    response = requests.post(ENDPOINT, params=params, json=data, headers={'Authorization': 'Basic '+ragic_API_KEY})
    # 使用 f-string 可以透過 {} 呼叫其他函數。後面的 200 代表伺服器回傳,找不到網頁的 404 也是這邊定義的!
    return f'Success sent to Ragic {response.text}', 200

記得儲存!

到 Setup Python App 中新增 requirements、Run Pip Install 並啟動程式

新增 requests 到 requirements 並 Run Pip Install(記得先 STOP APP)(Add>Edit>SAVE>Run Pip Install>START APP)
https://ithelp.ithome.com.tw/upload/images/20230926/20162937lM6YE4rJgd.png
https://ithelp.ithome.com.tw/upload/images/20230926/20162937cazf00FTWJ.png

重啟
https://ithelp.ithome.com.tw/upload/images/20230926/20162937NgtqNYGYPS.png

接著緊張的來了,請到 your_domain/webhook

https://ithelp.ithome.com.tw/upload/images/20230926/20162937xaaUbzucXz.png
NIIICE!

到 Ragic 可以看到已經有資料嘍!不過資料是從 WooCommerce 來的,預告一下明天會說說怎麼從 POST 中取得!
https://ithelp.ithome.com.tw/upload/images/20230926/20162937CHgrD8l24A.png

完整程式碼

# 引入 flask
from flask import Flask
import requests

# Ragic 設定
ragic_BASE_URL = 'ap2.ragic.com/xxx'
ragic_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# 這裡的 app 就是剛剛設定的 Application Entry point
app = Flask(__name__)

# 這下你輸入 your_domain.com/webhook,就會執行啦!
@app.route('/', methods=['GET'])
# 進到 route 之後要執行的東東。新增訂單的 def
def new_order():
    params = {'api': '','v': 3}
    data = {
        表格編號 1: 'test',
    }
    ENDPOINT = f'https://{ragic_BASE_URL}/formsx/x'  # 在這個表單新增資料
    response = requests.post(ENDPOINT, params=params, json=data, headers={'Authorization': 'Basic '+ragic_API_KEY})
    # 使用 f-string 可以透過 {} 呼叫其他函數。後面的 200 代表伺服器回傳,找不到網頁的 404 也是這邊定義的!
    return f'Success sent to Ragic {response.text}', 200

if __name__ == '__main__':
    app.run()

BTW,現在遇到一個大問題,是 A2 Hosting 的雖然可以成功回傳 your_domain/webhook,但如果是在 Flask 中設定其他 route,例如 your_domain/webhook/test(app.route('/test', methods=['GET']) )之類的 endpoint 就會回傳 404,所以如果要設定不同的 endpoint 目前只能新增很多個 Python Flask App...(我有問客服了,有結果會更新上來!)


上一篇
«D17»在 A2 Hosting cPanel 部署 Python App (Flask) (Setup Python Flask on A2 Hosting (cPanel))
下一篇
«D19»取得 WooCommerce Webhook 的資料
系列文
透過WordPress架設電商網站,並串接管理後台30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
電腦達人
iT邦新手 2 級 ‧ 2024-07-18 08:49:41

想問問後來客服有回覆嗎?

我要留言

立即登入留言