簡體   English   中英

WordPress REST API,Oauth1和python請求不起作用

[英]Wordpress REST API, Oauth1, and python requests not working

我有一個非常奇怪的問題,我似乎無法解決:

我已經在我的wordpress網站上設置了REST API和一個Oauth1服務器

我以前可以使用python請求庫連接到服務器並上傳新帖子,但是2個月后我重新編寫了代碼,現在不起作用了。 錯誤響應說: b'{"code":"json_oauth1_signature_mismatch","message":"OAuth signature does not match","data":{"status":401}}'

我可以連接到Oauth1服務器,並通過Postman HTTP請求構建器將新帖子上傳到我的站點,因此似乎該站點不是問題。

該代碼也不能成為問題,因為自上次運行良好以來,過去兩個月我都沒有對其進行更改。 另外,我已經在本地托管的wordpress安裝上對其進行了測試,並且工作正常。

精簡版的代碼如下所示:

import requests
from requests_oauthlib import OAuth1

OAuth_credentials = {
'client_key': 'X',
'client_secret': 'X',
'resource_owner_key': 'X',
'resource_owner_secret': 'X'
}

auth = OAuth1(*OAuth_credentials.values())

headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
}

data = {
    'title': 'title'
}

response = requests.request(
    'POST',
    'https://www.X.com/wp-json/WP/v2/posts/',
    headers=headers,
    auth=auth,
    json = data
)

對我來說似乎很奇怪,郵遞員正在工作,但是python請求庫不工作。 我只能認為我必須在自己的網站上進行了一些更改,例如htaccess,但是我對這一行查詢並不滿意。

我的.htaccess看起來像這樣:

# BEGIN HTTPS Redirection Plugin
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteBase /
RewriteRule ^index\.php$ - [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]
</IfModule>
# END HTTPS Redirection Plugin


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

誰能說出問題所在?

我現在已經解決了。 我發現由於某些原因,wordpress不喜歡http請求中的請求用戶代理。 我對其進行了更改,現在可以使用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM