wordpress和woomerce restapi的python包装器,支持oauth1a 3leg

wordpress-api的Python项目详细描述


wordpress api-python客户端图片::https://travis-ci.org/derwentx/wp-api-python.svg?branch=master
:目标:https://travis ci.org/derwentx/wp-api-python

…图片::https://api.codeculate.com/v1/badges/4df627621037b2df7e5d/可维护性
:目标:https://codeculate.com/github/derwentx/wp-api-python/可维护性
:alt:可维护性

。图片::https://api.codeculate.com/v1/badges/4df627621037b2df7e5d/test廑coverage
:目标:https://codeculate.com/github/derwentx/wp api python/test廑coverage
:alt:test coverage

。图片::https://snyk.io/test/github/derwentx/wp-api-python/badge.svg?targetfile=requirements.txt
:目标:https://snyk.io/test/github/derwentx/wp-api-python?targetfile=requirements.txt

wordpress和woomerce rest api的python包装,支持oauth1a 3leg。

支持wordpress rest api v1-2、woomerce rest api v1-3和woomerce wp-api v1-2(自动oauth3a处理)。
由Claudio Sanches编写并修改为与WordPress一起使用的RCE API:https://github.com/woomerce/wc-api-python

我创建了这个fork,因为与现有的Python客户端https://pypi.python相比,我更喜欢wc-api-python客户端与WordPress-api接口的方式。org/pypi/wordpress_json
不支持oauth身份验证,只支持基本身份验证(非常不安全)

欢迎对如何使用api和如何改进此存储库提出任何意见:)。
您可以在我的github配置文件中找到我的联系信息。

路线图
----

-[x]创建初始fork
-[x]在WordPress客户端上实现3条腿的OAuth
-[x]更好地本地存储OAuth凭据,以停止生成不必要的API密钥
-[x]支持将图像上载到WC API
-[]更好地处理超时后退
-[]实现迭代器以方便访问api项

允许在您的wordpress站点上安装插件:

-**wp rest api**(仅wp<;v4.7需要,建议版本:2.0+)
-**wp rest api-oauth 1.0a server**(可选,如果您希望oauth在wordpress api中。https://github.com/wp-api/oauth1)
-**wp rest api-meta endpoints**(可选)
-**woomerce**(可选,如果您想使用woomerce api)


————————————————————————————————————————————————————————————————代码块::bash



下载此repo并使用setuptools安装包

…代码块::bash

pip install setuptools
git clone https://github.com/derwentx/wp api python
python setup.py install

testing
----


有些测试对停靠的woomerce容器进行api调用。别担心!设置起来真的很简单。你只需要安装Docker并运行

…代码块:bash

docker compose up-d
代码块::bash

pip install-r requirements test.txt
python setup.py test

publishing
----


代码块::bash

python setup.py sdist bdist\u wheel
changelog
tween upload dist/wordpress api-$(python setup.py--version)-r pypitest
tween upload dist/wordpress api-$(python setup.py--version)-r pypi


这些说明:http://v2.wp api.org/guide/authentication/

nt)。
将生成的密钥和机密存储在安全的地方。


查看可以在http://v2.wp api.org/reference/

setup
----



wordpress api的基本身份验证:
----br/>(注意:需要基本身份验证n插件)

…代码块::python


/>)

wp rest api v2:
---
(注意:用户名和密码是必需的,以便它可以自动为您填写oauth请求令牌表单。
需要oauth 1.0a插件。)

…代码块::python

="xxxx",
wp_pass="xxxx",
oauth1a_3leg=true,
creds_store="~/.wc api creds.json"



Legacy Woomerce API v3:
——

……代码块::python





新的wc rest api:
---
注意:oauth1a 3legged可以与wordpress一起工作,但不能与woomerce一起工作。但是oauth1a签名仍然有效。
如果您尝试使用woocommerce进行oauth1a-3leg,它只会说"consumer-key无效",即使它是有效的。

代码块::python

/v2",
callback="http://127.0.0.1/oauth1廑callback'




~~~~~~~~

+———————————————————————————————————————————————————————————————————————————在类型必需描述
+=======================+=============+==========+=================================================================================================+
``url` ` ` ` ` string` `是您的存储URL,例如:http://wp.dev/
+??-+??-+??-+??-+??-+??-??-??-------------------------------------+
``consumer key` ` `` string` ` yes您的API使用者密钥
+---------------------------+——+——+——————+————————————————————————————————————————---———————————------------------------------------------------------------+
``consumer secret``````string````是``your api consumer secret`-----+——+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————``|
+——+——+——+————+————————————————————————————————————————————————————————————————————————————————————————————————————————————————————`` wc-api```
+——+——+——+——+——————————————————————————————————————————————————————————————————————————————————————————`` 5```
+??-+??-+??-+??-+??-??-??-??-
``验证ssl`` ` ` bool``否|连接时验证ssl,需要使用自签名证书进行测试时,将此选项用作"false";
+——————————————————————————————————————————————————————————————————————|``基本身份验证```124;``bool```否``强制基本身份验证,可以通过查询字符串或头(默认值)
+??-+??-+??-+??-+??-+??-??-??--——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————-------------------------------------------------------+
``oauth1a_3leg``````` string````否`;使用oauth1a三条腿身份验证`
+--------------------------+---------+--+------------------------------------------------------------+
``creds`存储` ` ` ` ` ` ` `字符串` ` ` `没有存储OAuth验证器的JSON文件(仅与OAuth leg一起使用)
+-----————————————————————————————————————————————————————————————————————————————————————————————————————————————r/>params type
>>+==========+====================================================================================================================================;api端点,例如:``posts``或``user/12``|
+———————————————————————————————————————————————————————————————————————————————————————————————————————————————————---————+


get
~~~

-```.get(endpoint)``


post
~~~

-``.post(端点,数据)`


~

>
`.put(端点,数据)``


delete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在wp api上使用basic auth)

…代码块::python

assert os.path.exists(img_path),"img应该存在"
data=open(img_path,"rb").read()
filename=os.path.basename(img_path)
uextension=os.path.splitext(filename)
headers={
"缓存控制":"无缓存"
"c内容处理':'附件;文件名=%s'%filename,
'内容类型':'图像/%s'%extension
}
endpoint="/media"
返回wpapi.post(endpoint,data,headers=headers)

response
--

所有方法都将返回"response<;http://docs.python requests.org/en/latest/api/requests.response>;``对象。


返回数据的示例:

。代码块::bash

>;>;来自wordpress导入api as wpapi
>;>;r=wpapi.get("posts")
>;>;>;r.status\u code
200
>;>;r.headers['content-type']
'application/json;charset=utf-8'
>;>;r.encoding
"utf-8"
>;>;r.text
u'{"posts":[{"title":"飞行忍者","id":70,…'//json text
>;>;r.json()
{u'posts':[{u'selled乇individual':false,…//dictionary data

有关删除请求的说明。
=


通知如何发出请求,例如"headers"。目前它只将"headers"参数传递给请求,但是如果我看到它的用例,我可以将更多的参数转发给"requests"。
"delete"函数不接受数据对象,因为http delete请求通常没有负载,而且http服务器将拒绝具有有效负载的删除请求。
您仍然可以在url的查询字符串中传递api请求参数。如果要自动删除用户,我建议使用类似于"urlparse"/"urllib.parse"的库来修改查询字符串。
根据[文档](https://developer.wordpress.org/rest api/reference/users/"delete-a-user)删除用户时,需要传递"force"和`将参数重新分配给api,可以通过将参数附加到端点url来完成。
…代码块::python
>>response=wpapi.delete('/users/<;id>;?重新分配=<;其他ID>;&;强制=真')
>;>;response.json()
{"已删除":真,…}

python2中有关编码的说明
===

,请确保只有"post"unicode字符串对象或
已正确编码为utf-8的字符串。python2中包含非utf8
字节字符串的序列化对象由于"json.dumps"中的错误而被从
"future"导入"unicode"文本而中断。您可以通过自己序列化数据来解决这个问题。



——


1.2.8-2018/10/13
~~~~~~~~~~~~~~~~~~~~
-更好的python3支持
-非常好的测试
-添加了用于添加自定义头(如jwt)的noauth选项

1.2.7-2018/06/18 2018/06/2018年
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~br/>~~~~~~~~~~~~~~~~~~~~~~~~
-更好的UTF-8支持

1.2.4-2017/10/01
~~~~~~~~~~~~~~~~~~~~
-支持图像上载
-更精确的WP身份验证方法文档

1.2.3-2017/09/07
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-更好地本地存储OAuth凭据以停止生成不必要的API密钥
-改进API错误的解析以显示更有用的错误信息


1.2.2-2017/06/16
~~~~~~~~~~~~~~~~~~~~~
-支持不带https的基本身份验证
-将oauth模块重命名为auth(因为auth包括oauth和基本auth)
-使用最新版本的wp和wc进行测试

1.2.1-2016/12/13
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-测试以处理诸如filter[limit]
-修复:某些边缘情况下,查询无序会导致signatrue mismatch
-强化了helper和api类,并添加了相应的测试用例

1.2.0-2016/09/28
~~~~~~~~~~~~~~~~~~~~~~

-初始fork
-实现了3条腿的oauth
-使用分页进行测试

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
空字符串检查在java中未按预期工作   JavaSpringWebClient:自动计算主体的HMAC签名并将其作为头传递   foreach是否有一个Java等效的foreach循环和一个引用变量?   java如何在Eclipse中导入jar   使用特定第三方或java时lombok触发错误。*方法或构造函数   安卓 java将对象数组转换为int数组   java使一定百分比的JUnit测试通过   java Android:将Seekbar的一个值与另一个值进行比较   java将int数组(图像数据)写入文件的最佳方式是什么   java取代了系统。yml的构造函数内的getProperty   sqlite Java将公钥和私钥转换为字符串,然后再转换回字符串   安卓获取白色像素并将其保存到java opencv中的数组中   java为什么是ServerSocket。setSocketFactory静态?   Java数组似乎在不直接修改的情况下更改值