sanmai / mercari-php-sdk
Mercari API PHP SDK
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- caseyamcl/guzzle_retry_middleware: ^2.9
- doctrine/annotations: ^2.0
- guzzlehttp/guzzle: ^6.3 || ^7.0
- jms/serializer: ^3.29
- psr/log: ^1.1
- sanmai/json-serializer: ^0.2.5
- symfony/http-foundation: ^4.4.7 || ^5.0.7
- tumblr/chorus-timekeeper: ^0.1.1
Requires (Dev)
- ergebnis/composer-normalize: >=2.23
- fakerphp/faker: ^1.23
- friendsofphp/php-cs-fixer: ^3
- infection/infection: >=0.11
- jenssegers/optimus: ^0.2.3
- phan/phan: >1.3.0
- php-coveralls/php-coveralls: ^2.4
- phpstan/phpstan: >=0.10
- phpunit/phpunit: ^9.3
- sanmai/pipeline: >=6.11
- symfony/validator: >=5.4
- vimeo/psalm: >=3.0.16
Suggests
- doctrine/cache: For metadata caching
- monolog/monolog: For advanced logging and debugging
This package is auto-updated.
Last update: 2024-09-16 13:51:50 UTC
README
所以,我想从Mercari抢购一件稀有物品。如果你曾经尝试购买稀有物品,你就会知道这些物品会在几秒钟内消失。几乎是以超人类速度。没错,有API可以允许复杂的买家使用机器人。
Mercari的API凭证很难获得,因为Mercari在授予它时非常挑剔。然而,他们对互联网安全的态度有些天真,要求用户建立本地的认证代理服务器,以便他们的工程师可以在家中舒适地与API一起工作。这就是我能够玩转API并买到好东西的原因。作为回报,你将获得一个API客户端,但请不要向我索要凭证或访问权限。如果你想使用这个客户端,你需要通过Mercari自己解决这个问题。
这是一个相当完整的Mercari API客户端,在几个节假日的鸡尾酒中快速制作而成。目前它对我工作得很好,但嘿,我只是一个人。随时加入并贡献!我可能需要在Mercari购买东西时会对其进行一些调整,但这是开源的!添加新方法,调整东西,让它成为你自己的。所以我期待你,这个API客户端的用户,带着尊严和优雅,承担起添加新方法等责任。
实现状态
- 搜索商品(v3)
- 通过ID获取商品
- 通过ID获取用户
- 通过ID获取批量商品
- 购买商品
- 相似商品
- 通过交易ID获取交易
- 通过商品ID获取交易
- 获取交易消息
- 发布交易消息
- 发布交易评论
- 获取待办事项列表
- 获取评论
- 发布评论
- 获取商品分类
- 获取商品品牌
你需要什么
在开始玩这个API客户端之前,这里是你需要了解的
- 授权主机名。在示例中,我们假设它是
proxy-auth.example.com
。 - "开放API" 主机名。这是你真正与Mercari API交流的地方。我们将称之为
proxy-api.example.com
。 - API凭证:你需要从Mercari获取
client_id
和client_secret
。
如果你不喜欢Mercari的IP限制(说实话,谁会喜欢呢?),你可以设置自己的代理服务器,或者如果你喜欢冒险,尝试直接访问API。由你决定!
代理服务器
说实话:Mercari的API安全有点让人沮丧。他们“每个客户一个IP地址”的规则就像一面砖墙一样灵活,这使得团队或需要改变事物的人生活困难。想象一下,当你像在云中启动新服务器那样更换IP时,却不得不等待几周让Mercari赶上。哇!
这就是代理服务器拯救世界的时刻。它就像你个人的API保镖,让你可以随意更改IP地址,而Mercari甚至都不会注意到。此外,你可以与你的团队共享访问权限,而无需跳过任何障碍。这对于协作和理智来说是一大胜利!
对于Mercari无法看到谁实际在使用他们的API,这也引起了一些担忧。就像举办一个没有宾客名单的派对——任何人都可以出席。虽然可能并非有意为之,但Mercari在这方面缺乏监管,强调了我们在端需要强大的认证代理服务器的必要性,特别是对于协作项目的团队。
让我们从这个派对开始,使用nginx,一个非凡的代理服务器。设置它非常简单——只需在配置文件中添加一个新的location块
location / { proxy_pass http://actual-api-host.example.jp/; # Lock it down with an IP allow list allow 192.168.1.0/24; # Allow a specific subnet allow 10.0.0.1; # Allow a specific IP deny all; # Deny all other IPs }
这告诉nginx将请求转发到您的actual-api-host.example.jp
服务器,但仅限于您指定的IP。您掌握着控制权,决定谁可以访问以及他们可以做什么。尽情地使用您的访问限制——这是您的派对!
SSH隧道
如果您不想设置专用代理,不要担心!SSH的动态隧道功能是您访问Mercari API的秘密武器。只需运行以下命令
ssh -fCND 1080 my-server.example.com
这将在您的my-server.example.com
服务器(替换为您的实际服务器地址)上打开一个隧道,让您可以像在服务器上一样访问Mercari API。这是一个绕过那些讨厌的IP限制的方便方法,尤其是在没有完整的代理设置时。
虽然nginx代理对于基本的IP允许列表很有用,但SSH隧道更进一步。您的流量是端到端加密的,与普通的代理设置相比增加了额外的安全层。这使得它在需要保护API凭据或在公共或不太安全的网络上工作时成为一个不错的选择。
然而,SSH隧道也有一些瑕疵。不稳定的连接可能会使其变得有点麻烦,您需要配置API客户端在开发时使用隧道,但在生产时不要使用。这是安全性和便利性之间的权衡。
因此,如果您可以接受一些额外的配置,并且不介意偶尔的连接中断,SSH隧道提供了一个安全且灵活的方法,可以从任何地方访问API。