sanmai/mercari-php-sdk

Mercari API PHP SDK

0.1.2 2024-06-15 12:12 UTC

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_idclient_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。