Brody Berson(https://mynamebrody.com/)和Reid Robinson(https://www.linkedin.com/in/reidtrobinson/)都在Zapier工作,他们能够使用Zapier开发者平台(https://zapier.com/platform)建立可连接至Pinata(https://pinata.cloud/)并允许在IPFS上轻松存储文件的定制应用程序。对于不熟悉Zapier的人来说,这是一个可以连接多个应用程序和自动化任务的平台。例如,可以通过连接Intercom和Google Sheets来更新支持聊天中的电子表格。Zapier如今已能够支持平台上3000多个应用程序,这意味着其自动化能力几乎无止境。
以上,Brody和Reid力证了其可行性并打下坚实基础,于是我们完成了Pinata Zapier应用程序并将其公开。从今天开始,你可以通过Zapier将成千上万的应用程序连接到Pinata,且不需要编码。在此背景下,请随我们一起深入了解此教程。
应用
我们正在打造一款可以使用Pinata自动将你新购买的NFT备份至IPFS的简单应用程序(无代码或少量使用代码),这很重要且最近成为了一个热议话题。我们曾经讨论过NFT相关的数据责任概念(https://medium.com/pinata/who-is-responsible-for-nft-data-99fb4e8147e4),这个工具可以让你完全控制你全部的NFT相关资产。
不过,这个应用程序不是真正的应用程序,至少不是说会有一个可以访问的URL并亲眼看到的应用程序。相反,可以把它看作是个人Pinata机器人,它努力的寻找你拥有的所有NFT并将其内容托管在IPFS上。这个应用程序其实是一个Zap(https://zapier.com/help/create/basics/create-zaps)。
在本教程中,我们将使用Etherscan API(https://etherscan.com/)来寻找给定地址所拥有的NFT。然而,你可以根据自己的意愿来扩展此工具。
在我们开始前,你需要如下准备:
Pinata的免费账户(https://pinata.cloud/)
Zapier的免费账户(https://zapier.com/)
Etherscan的免费账户(https://etherscan.io/)
你的钱包里还需备有一些NFT,如果你目前没有任何NFT,你可以玩玩Ethereum测试网。买一些假的NFT,然后用Etherscan testnet API换掉Etherscan API。我将在接下来的教程中指出需要改变的地方。
这就开始吧
请登录你的Zapier、Pinata和Etherscan账户,你需要创建一个用于Zapier的Pinata API令牌,所以我们先做这一步。在左侧导航中的“开发人员”部分点击API私钥以创建一个新的API私钥。完成这一步后,你将能控制私钥。对于访问权限,足够即可,无需更多。这是我为我的私钥选择的访问权限
我们需要Zapier能够代表我们托管文件和JSON,还需要其能够列出它所托管的文件(尽管我们在本教程中不会使用此功能)。
当你创建私钥时,一个模式将显示API密钥、API Secret 和JWT。你会需要用到JWT,因此请复制并将其存储到安全的地方。
接下来,你需要在Etherscan上创建一个API私钥,你可以在此创建(https://etherscan.io/myapikey)。
如果你使用testnet,请使用Rinkeby testnet,并在此(https://rinkeby.etherscan.io/)设置你的Etherscan账户和API私钥,你也可以在OpenSea这里(https://testnets.opensea.io/)找到testnet NFT。你还需要获得一些testnet Ethereum代币,建议你去谷歌上搜索获得途径。获得代币的方法非常多,本教程不再赘述。
当你获得了Etherscan API私钥,请将此密钥与Pinata JWT一起保存。
现在,在Zapier中点击菜单转到“My Zaps”处,你会看到一个按钮,点击此按钮可创建一个新的Zap。
点击“Make a Zap”会被提示要选择一个你将用来作为触发器的APP。现在,我们准备使用Etherscan作为我们的触发器,我们希望任何新NFT都能触发Zap。Zap本身会找到与新NFT相关的元数据,并将其内容托管在Pinata上。
我们将用于触发事件的APP会需要一小部分代码,因为到目前为止,没有NFT或者Ethereum平台在Zapier上有APP。但不要担心,我会提供此处需要的代码片段。搜索Zapier代码并选择运行Javascript作为触发器。
当点击继续时,你就可以粘贴需要运行的代码。请粘贴以下内容:
const yourAddress = "YOUR ETHEREUM ADDRESS"
const etherscanApiKey = "YOUR ETHERSCAN API KEY"
const res = await fetch(`https://api.etherscan.io/api?module=account&action=tokennfttx&address=${yourAddress}&startblock=0&endblock=999999999&sort=asc&apikey=${etherscanApiKey}`);
const body = await res.json();
const results = body.result;
let mainResult = {}
if(results && results.length > 0) {
const lastTx = results[0];
if(lastTx) {
const openSeaRes = await fetch(`https://api.opensea.io/api/v1/metadata/${lastTx.contractAddress}/${lastTx.tokenID}`)
const openSeaBody = await openSeaRes.json()
mainResult = openSeaBody
}
}
return {id: 1, results: mainResult};
如果你使用的是testnet,用 https://rinkeby-api.opensea.io/api/v1/替换OpenSea api URL,然后像主网的URL那样附加其余的URL。
在这段代码中,我们使用Etherscan的token transfer API来检查Ethereum钱包里的NFT交易。这段代码只会抓取最近的交易,所以我们的想法是它将在你睡觉时运行,当发现一个新的交易时,元数据将从OpenSea中获取。我们将在Zap的下一步中使用到这些元数据。
如果你的钱包中有任何NFT,你可以测试触发器,且会获得如下测试结果:
接下来的步骤是我们告诉Zapier如何处理在触发器中发现的信息。在你的操作中需要搜索一个APP,你可以搜索Pinata。当找到Pinata时,会被提示验证账户。此处你就需要粘贴JWT过来,完成此操作后,Zapier就可以访问Pinata账户。
现在你可以进入设置行动步骤。这个步骤非常简单,仅需提供文件的URL和文件名,这是来自触发步骤的变量。我的设置界面如下:
现在,测试这个步骤,你应该可以看到和NFT相关的文件已被托管在Pinata账户上。是不是还有所怀疑?那就返回你的账户并检查你的pin管理器看看吧!
如何打开Zap?你需要先在左上角为它命名,然后将切换开关拨到开就可以啦。你现在就相当于拥有了一个机器人,它会确保你所有与NFT相关的资产被托管在IPFS上且完全属于你。
预祝你接下来的NFT存储之旅一切顺利!
中创算力立足中原,积极响应国家新基建号召,紧随国家战略,把区块链分布式数据存储赛道作为公司重点发展业务板块,为客户提供集群架构、数据中心部署、分布式存储、大规模集群运维、边缘计算等一站式解决方案。
深耕分布式存储 | 边缘计算 | 赋能实体产业。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。