教程 | 如何使用Zapier和IPFS创建无代码的NFT文件工具
星际视界IPFSNEWS黑客松的奇妙之处在于人们可以想出各式各样的应用,创意观点自由地交流碰撞,会让人无意中发现从未想到过的点子。我们在ETHGlobal NFT黑客松做评委时就是这种情况。有一个原来叫MyMuzzay如今叫CocoNFT的APP,通过将Instagram上的帖子拉过来铸造成NFT且同时把资产和元数据存储于IPFS上,给我们带来了惊喜。他们就是利用尽可能多的无代码工具包括Zapier,才能做到这一点。
Brody Berson和Reid Robinson都在Zapier工作,他们能够使用Zapier开发者平台建立可连接至Pinata并允许在IPFS上轻松存储文件的定制应用程序。对于不熟悉Zapier的人来说,这是一个可以连接多个应用程序和自动化任务的平台。例如,可以通过连接Intercom和Google Sheets来更新支持聊天中的电子表格。Zapier如今已能够支持平台上3000多个应用程序,这意味着其自动化能力几乎无止境。
以上,Brody和Reid力证了其可行性并打下坚实基础,于是我们完成了Pinata Zapier应用程序并将其公开。从今天开始,你可以通过Zapier将成千上万的应用程序连接到Pinata,且不需要编码。在此背景下,请随我们一起深入了解此教程。
1、应用
我们正在打造一款可以使用Pinata自动将你新购买的NFT备份至IPFS的简单应用程序(无代码或少量使用代码),这很重要且最近成为了一个热议话题。我们曾经讨论过NFT相关的数据责任概念,这个工具可以让你完全控制你全部的NFT相关资产。
不过,这个应用程序不是真正的应用程序,至少不是说会有一个可以访问的URL并亲眼看到的应用程序。相反,可以把它看作是个人Pinata机器人,它努力的寻找你拥有的所有NFT并将其内容托管在IPFS上。这个应用程序其实是一个Zap。
在本教程中,我们将使用Etherscan API来寻找给定地址所拥有的NFT。然而,你可以根据自己的意愿来扩展此工具。
在我们开始前,你需要如下准备:
1.Pinata的免费账户(https://pinata.cloud/)
2.Zapier的免费账户(https://zapier.com/)
3.Etherscan的免费账户(https://etherscan.io/)
你的钱包里还需备有一些NFT,如果你目前没有任何NFT,你可以玩玩Ethereum测试网。买一些假的NFT,然后用Etherscan testnet API换掉Etherscan API。我将在接下来的教程中指出需要改变的地方。
2、使用指南
请登录你的Zapier、Pinata和Etherscan账户,你需要创建一个用于Zapier的Pinata API令牌,所以我们先做这一步。在左侧导航中的“开发人员”部分点击API私钥以创建一个新的API私钥。完成这一步后,你将能控制私钥。对于访问权限,足够即可,无需更多。这是我为我的私钥选择的访问权限:
我们需要Zapier能够代表我们托管文件和JSON,还需要其能够列出它所托管的文件(尽管我们在本教程中不会使用此功能)。
当你创建私钥时,一个模式将显示API密钥、API Secret 和JWT。你会需要用到JWT,因此请复制并将其存储到安全的地方。
接下来,你需要在Etherscan上创建一个API私钥,你可以在此创建。
如果你使用testnet,请使用Rinkeby testnet,并在此设置你的Etherscan账户和API私钥,你也可以在OpenSea这里找到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账户上。是不是还有所怀疑?那就返回你的账户并检查你的管理器看看吧!
如何打开Zap?你需要先在左上角为它命名,然后将切换开关拨到开就可以啦。你现在就相当于拥有了一个机器人,它会确保你所有与NFT相关的资产被托管在IPFS上且完全属于你。
——End——
编辑:星际视界IPFSNEWS Miss Xiang