时空云丨使用分布式存储协议和Zapier创建无代码的NFT文件工具

10
五月
2021

 

br

 

黑客松的奇妙之处在于人们可以想出各式各样的应用,创意观点自由地交流碰撞,会让人无意中发现从未想到过的点子。我们在ETHGlobal NFT黑客松(https://nfthack.ethglobal.co/)做评委时就是这种情况。有一个原来叫MyMuzzay如今叫CocoNFT(http://coconft.com/)的APP,通过将Instagram上的帖子拉过来铸造成NFT且同时把资产和元数据存储于分布式存储协议上,给我们带来了惊喜。他们就是利用尽可能多的无代码工具包括Zapier(https://zapier.com/),才能做到这一点。

 

Brody Berson(https://mynamebrody.com/)和Reid Robinson

(https://www.linkedin.com/in/reidtrobinson/)都在Zapier工作,他们能够使用Zapier开发者平台(https://zapier.com/platform)建立可连接至Pinata(https://pinata.cloud/)并允许在分布式存储协议上轻松存储文件的定制应用程序。对于不熟悉Zapier的人来说,这是一个可以连接多个应用程序和自动化任务的平台。例如,可以通过连接Intercom和Google Sheets来更新支持聊天中的电子表格。Zapier如今已能够支持平台上3000多个应用程序,这意味着其自动化能力几乎无止境。

 

以上,Brody和Reid力证了其可行性并打下坚实基础,于是我们完成了Pinata Zapier应用程序并将其公开。从今天开始,你可以通过Zapier将成千上万的应用程序连接到Pinata,且不需要编码。在此背景下,请随我们一起深入了解此教程。

 

应用

我们正在打造一款可以使用Pinata自动将你新购买的NFT备份至分布式存储协议的简单应用程序(无代码或少量使用代码),这很重要且最近成为了一个热议话题。我们曾经讨论过NFT相关的数据责任概念(https://medium.com/pinata/who-is-responsible-for-nft-data-99fb4e8147e4),这个工具可以让你完全控制你全部的NFT相关资产。

 

不过,这个应用程序不是真正的应用程序,至少不是说会有一个可以访问的URL并亲眼看到的应用程序。相反,可以把它看作是个人Pinata机器人,它努力的寻找你拥有的所有NFT并将其内容托管在分布式存储协议上。这个应用程序其实是一个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私钥。完成这一步后,你将能控制私钥。对于访问权限,足够即可,无需更多。这是我为我的私钥选择的访问权限:

 

br

我们需要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。

 

br

 

点击“Make a Zap”会被提示要选择一个你将用来作为触发器的APP。现在,我们准备使用Etherscan作为我们的触发器,我们希望任何新NFT都能触发Zap。Zap本身会找到与新NFT相关的元数据,并将其内容托管在Pinata上。

 

我们将用于触发事件的APP会需要一小部分代码,因为到目前为止,没有NFT或者Ethereum平台在Zapier上有APP。但不要担心,我会提供此处需要的代码片段。搜索Zapier代码并选择运行Javascript作为触发器。

 

br

当点击继续时,你就可以粘贴需要运行的代码。请粘贴以下内容:

 

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,你可以测试触发器,且会获得如下测试结果:

 

br

接下来的步骤是我们告诉Zapier如何处理在触发器中发现的信息。在你的操作中需要搜索一个APP,你可以搜索Pinata。当找到Pinata时,会被提示验证账户。此处你就需要粘贴JWT过来,完成此操作后,Zapier就可以访问Pinata账户。

 

现在你可以进入设置行动步骤。这个步骤非常简单,仅需提供文件的URL和文件名,这是来自触发步骤的变量。我的设置界面如下:

 

br

现在,测试这个步骤,你应该可以看到和NFT相关的文件已被托管在Pinata账户上。是不是还有所怀疑?那就返回你的账户并检查你的pin管理器看看吧!

是不是很酷?

 

如何打开Zap?你需要先在左上角为它命名,然后将切换开关拨到开就可以啦。你现在就相当于拥有了一个机器人,它会确保你所有与NFT相关的资产被托管在分布式存储协议上且完全属于你。

 

预祝你接下来的NFT存储之旅一切顺利!

TAG

网友评论

共有访客发表了评论
请登录后再发布评论,和谐社会,请文明发言,谢谢合作! 立即登录 注册会员