Pi官方推特7月24日最新消息
翻译:
嘿 先锋们,
我们刚刚通过下面链接的推特博客发布了#buildpi2gether 黑客马拉松研讨会视频的文字记录。如果开发人员需要帮助启动他们的项目,这是一个很好的资源。
《黑客马拉松研讨会实录》
Pi Network官方博客 7小时前
黑客马拉松研讨会视频1
标题:Pi 开发者门户网站介绍
视频链接:https://youtu.be/1geTAyvMeZM
视频文字翻译:
大家好,我是来自 Pi Core 团队的 Lyriaaw。在此介绍视频中,我们将讨论今年 7 月发布的新 Pi 开发者门户。与 Brainstorm(头脑风暴) 一起,开发者门户旨在成为您在 Pi Network 开发之旅中的主要伙伴。
从构思到发布,所有步骤都可以通过这两个实用程序进行管理。头脑风暴主要用于构思、筹资和团队聚集,开发者门户网站则是为了管理您在Pi Network平台上的应用。
在本视频中,我们将主要关注 Pi 开发人员门户及其功能。
1 – 创建一个应用程序
1.A – 基本字段
当您第一次打开开发人员门户时,您将看到此实用程序。您可以单击“新建应用程序”按钮开始创建过程。从这里,您现在应该看到应用程序创建表单。应用程序名称和描述是不言自明的。如果您有一个与您的应用相关联的头脑风暴项目,您应该使用相同的名称。在表格的末尾,您将被要求提供您的 Github 和 Discord 用户名。我们可能想在 discord 和 github 上创建一个开发者组,所以我们现在就开始收集用户名。这两个字段是 100% 可选的。未来,我们希望在 Brainstorm 和开发者门户之间架起一座桥梁,让整个应用生命周期无缝衔接。
1.B – 自我托管/由pi核心团队托管
在表格的中间,你会看到一个问题,问你是否想让这个应用程序自行托管或由Pi Core Team托管。
1.B.1–自行托管
自行托管意味着您是负责处理应用程序的人。您可以拥有自己的基础设施,但您是负责扩展和可用性的人。如果选择此选项,系统会要求您提供应用程序的前端 URL。正如在之前的视频中所解释的,Pi Utilities 实际上是在 iframe 中运行的网站,因此您必须为 Pi 浏览器提供此 url 才能显示您的应用程序。
1.B.1 – 由Pi核心小组管理
另一方面,由Pi Core Team托管意味着我们在托管你的应用程序 – 没有基础设施管理,没有可用性问题,你只需管理代码。虽然第一种选择对每个人都适用,但第二种选择需要你通过头脑风暴开发者测试。
正如你们所知道的,Pi核心团队目前正在组织一场黑客马拉松。在加入该活动并说你是一名开发者后,你将被送入一个技术测试。当Brainstorm和开发者门户连接后,通过技术测试将自动为你打开下一个步骤。
最后,当你选择这个动作时,你将被要求提供一个gitlab用户名,而不是一个前端的网址。这对我们很有用,可以为你提供一个Gitlab项目,已经与我们的部署管道集成。现在你可以点击提交按钮,跟着我到下一页。
2 – 前端验证
如果你选择自己托管你的应用程序,你将需要验证你的域名所有权。这是为了避免开发者从他们不代表的网站创建应用程序。例如,你不应该能够冒充wikipedia.com域名。
为了证明你对域名的所有权,你将需要在你的域名根部放置一个特定的文件。该文件的内容必须与灰色框中的文本字段的内容一致。
将包含正确内容的文件放置在域的根目录后,您可以单击“验证域”按钮。您将看到带有一些调试信息的错误消息,或者灰色框应该消失并且您的域 url 旁边应该出现一个绿色复选标记。恭喜,您的域所有权现已通过验证,您可以通过 PI 浏览器在地址栏中键入您的应用程序 URL 来访问您的应用程序。
3 — API KEY
Pi SDK 附带 Pi API,您可以在其中对主 Pi 后端执行 HTTP 请求。目前这仅用于处理付款,但将来会添加更多功能,例如从您的应用程序在 Pi Chat 上创建聊天对话。在页面底部,您可以看到一个名为“API 密钥”的部分。作为应用程序开发人员,您将需要它来访问 PI 后端。保持安全!任何拥有此密钥的人都可以伪装成您。
请注意,访问公共 Pi 区块链不需要任何 API 密钥,您可以简单地使用您的应用程序的私钥生成交易,并通过任何公共节点(例如您自己的节点、Pi 核心团队的节点之一或任何 运行“区块链 API 服务”的其他节点)
3 — SCOPES
作用范围是一个允许开发者请求对用户进行不同级别访问的功能。默认情况下,应用程序只能访问匿名用户标识符,但如果应用程序必须知道其用户的用户名(例如在界面中显示),则它必须请求“用户名”范围。如果应用程序打算请求其用户向应用程序支付 Pi,则它必须请求“支付”范围。请求范围对用户是可见的,因此为了最大限度地增加舒适地安装您的应用程序的人数,我们建议您只要求您的应用程序运行绝对必要的最小范围数量。您以后可以随时要求更多范围。请注意,范围工具目前正在由核心团队积极开发。
结论
使用这个新工具和头脑风暴的集成,您将能够管理您的应用程序从一个想法到它的公开发布。在区块链上创建应用程序从未像现在这样简单。欢迎尝试SDK,并向我们展示您可以添加到 Pi 实用程序生态系统的内容。
黑客马拉松研讨会视频 2
标题:Pi SDK & Sandbox 介绍
视频链接:https://youtu.be/7wsIYOFtSZ4
视频文字翻译:
我叫 Hakkyung,在这个视频中,我将展示如何使用 Pi SDK 和验证用户,以及如何在沙盒环境中运行您的应用程序以进行开发。请记住,Pi 应用程序是加载到环境中的 Web 应用程序,这使它们能够与 Pi Apps Platform 提供的资源进行交互。为此,您需要在您的应用程序中安装一段称为客户端 SDK 的 Javascript。由于 Pi 应用程序主要是 Web 应用程序,因此您可以使用沙盒环境在桌面浏览器中调试它们。
我们将使用这个名为 Pi Online Bakery 的简单单页应用程序。它使用 create-react-app 进行初始化,但您仍然可以使用准系统 HTML 和 javascript 创建演示应用程序。
要使用 Pi SDK,您需要在前端添加一个 SDK 脚本标签。然后需要调用init函数来初始化SDK。您需要指定版本以确保与未来的 SDK 版本兼容。到目前为止,2.0 版本是最新的,所以我们把 2.0 放在这里,沙箱标志是真的,我将在稍后讨论。此沙箱标志是可选的,可让您配置 SDK 以在沙箱中运行。如果你用环境变量控制这个变量会很方便,但为了明确起见,我在这里将它设置为 true。
让我们去开发者门户。我假设您已经像我在这里所做的那样在门户网站上注册了您的应用程序。要在沙箱中加载您的应用程序,您需要设置“开发 URL”。现在它说“未配置”所以让我们编辑它。这通常是具有自定义端口的本地主机,具体取决于您的开发环境。这里我使用 localhost 和 3003 端口。设置开发 URL 后,将生成一个沙箱 URL。在桌面浏览器中打开这个网址,你会看到这个带有授权码的白页。如果您正在运行 Pi Node,您可能熟悉这个过程。打开您的移动应用程序,然后点击 Pi 实用程序页面底部的授权沙箱链接。您需要输入授权码并按确认。当您的沙箱环境获得授权后,您将在沙箱环境中看到您的应用程序,这是您之前看到的页面。
现在打开浏览器的开发工具。这里有一个小的上下文选择器。您可以选择 localhost 来获取应用程序的上下文。选择localhost后,在控制台输入Pi,就可以访问了。当然,您会看到一些值为 null,因为当前用户尚未通过身份验证。
现在我们可以在沙箱中运行我们的应用程序,让我们很快看一下 SDK。您将遇到的第一个函数是身份验证函数。它接受一个名为 scopes 的字符串数组和一个名为 onIncompletePaymentFound 的回调函数。
有两个可用范围,即用户名和付款。目前,范围功能仍在开发中。这意味着身份验证功能将按照现在的要求考虑两个范围。尽管如此,您应该仅使用相关范围来实现您的应用程序。检查我们的 github 存储库上托管的 SDK 参考以获取未来更新。
onIncompletePaymentFound 函数处理您的应用程序和您正在验证的用户之间的未完成付款。当您不提交服务器端完成 API 调用时,付款被视为未完成。在这个演示应用程序中,我们提出了一个示例用法,其中将付款发送到应用程序服务器以查找之前的订单并将其标记为已付款。付款视频中提供了有关付款的更多详细信息。现在,让我们记住,我们需要传递一个回调函数来处理来自服务器端的未完成支付。
authentication 函数将返回一个promise,看起来像这样。返回值稍后可能会更改,但重要的是您需要确保将其发送到应用服务器并将此信息存储在您的数据库中。通过从您的服务器点击 /me 端点来验证这一点也很重要,因为恶意用户可以假装他们是其他人。您可以在我们的 Pi-Platform-documentation 中找到有关 /me 端点的更多信息。
所以在这个视频中,我们已经看到了如何使用 SDK,在沙箱中运行您的应用程序并验证当前用户。在下一个视频中,我将介绍如何处理付款,这是您的应用程序和用户之间的区块链交易的包装器。谢谢观看。
黑客马拉松研讨会视频 3
标题:Pi Payments 介绍
视频地址:https://youtu.be/rvrmaDu61Tc
视频文字翻译:
欢迎大家回来。在之前的视频中,我们看到了如何使用 Pi SDK、在沙箱中运行您的应用程序以及对用户进行身份验证。在本视频中,我将向您介绍整个付款流程。我将要解释的过程处于非常高的水平,但即便如此,您仍将能够了解创建付款所需的操作。如果您想了解更多关于幕后实际发生的事情,请参阅我们的 Pi 平台文档。现在让我们开始吧。
在整个过程中,基本上涉及 4 方。您的应用程序、您的应用程序服务器、Pi 服务器和 Pi 区块链。要记住的最重要的一点是,所有这些都必须与付款状态完全同步,以避免任何可能的竞争条件。如果出现问题,用户可能会为已经提供给其他人的物品付款,或者用户可能会因为流程中断而为一件物品付款两次。为避免此类情况,Pi Core 团队已将协议作为 Pi SDK 的一部分实施,您完全无需担心。
使用 Pi SDK,在 Pi Apps 中创建付款非常简单。我们来看看 createPayment 函数。它需要 2 个参数,分别是 paymentData 对象和回调函数对象。paymentData 对象由三个项目组成。支付金额、用户备忘录和您自己使用的元数据。如果缺少其中任何一个,您将收到错误消息。
onReadyForServerApproval 是一个函数,当支付 id 准备好时被调用。使用此功能,您需要将支付 ID 和其他相关数据传递到您的应用服务器。然后在您的服务器上,您应该为即将购买的用户保留一个项目,并让 Pi 服务器知道您已准备好继续。换句话说,您需要确保您的服务器通过此功能知道当前的付款。
onReadyForServerCompletion 是一个在区块链交易提交到 Pi 区块链后被调用的函数。您的工作再次是将任何相关数据传递到您的应用服务器。在您的服务器上,您可以验证付款并交付为用户保留的项目。最后,您应该通过让 Pi 服务器知道您已收到付款并交付物品来完成付款。其他 2 个函数是 onCancel 和 onError 函数。顾名思义,它们是在取消付款和发生错误时调用的函数。
让我们不要忘记我们在上一个视频中看到的 onIncompletePaymentFound 函数。提醒您,此功能负责完成任何未完成的付款。您可能想知道为什么需要实现此功能。付款过程可能会意外中断。用户可能会失去互联网连接,应用可能会崩溃或服务器可能没有响应。如果付款过程在用户付款之前失败,那么没关系。用户只需要重新开始该过程。当然,您需要清理服务器上的陈旧订单。但是,如果用户已经付款,并且过程突然结束而没有优雅地完成怎么办?这就是这个功能发挥作用的地方。Pi SDK 会在用户通过身份验证和用户尝试进行新付款时检测此类付款,如果发现付款未完成,它将请求您的应用程序完成付款。好的,所以我们将在一分钟内实现这些功能。但是还有一个你不能忘记的步骤,那就是获取 API Key。
假设你已经在开发者门户上注册了你的应用,让我们生成 API Key,如果你还没有这样做的话。在底部选择您的应用程序,如果您点击“获取 api 密钥”按钮,您可以创建一个新密钥。在关闭窗口之前保存密钥。使用此密钥,您可以点击我们的端点并更新付款状态。
我们回到我们的演示应用程序,现在我们要实现回调函数。为了节省时间,我准备了代码片段。一起来填这个吧。我们现在都知道这是什么。您在这里要做的是调用您的服务器以从您的服务器访问我们的端点。请记住,这个斜线批准只是我用作示例的任意路线。同样,要完成付款,您需要调用您的服务器以访问我们的端点。最后两个函数供您自己使用。取消付款后,请在您的服务器上将其标记为已取消。还可以根据需要处理错误。
现在让我们完成后端。在这个演示中,我正在运行节点服务器,但你可以选择任何你喜欢的后端。还要记住,实际的实现取决于你。我只是展示一个粗略的例子来帮助你理解这个过程。首先,让我们看看批准路线。创建付款时,您需要为用户预留一个项目,并将 paymentId 映射到当前订单。然后确保点击批准端点以批准付款。同样的事情也适用于完整的路线。您可以根据需要验证付款,将商品交付给用户,将订单标记为已付款并通过点击完成端点完成付款。我们不应该忘记不完整的路线。处理未完成的付款,并点击完整的端点。虽然我在这里跳过,但不要忘记处理取消路由。我们终于准备好创建付款了。
现在代码已经准备好了,让我们从头开始看流程。我一点击按钮,付款流程就开始了。只有在应用服务器批准付款后,我才能看到下一页。然后我可以查看详细信息,如果我认为它是正确的,我将使用我的密码来签名并将交易提交到 Pi 区块链。现在交易已提交,我们正在等待应用服务器完成支付流程。当应用服务器最终完成支付时,我可以看到这个结果,演示到此结束。谢谢观看。