# Lens SDK 中文介绍

By [clarkwang.eth](https://paragraph.com/@clarkwang-eth) · 2023-05-14

---

今天，我们庆祝一个重要的里程碑，推出了Lens SDK，一个全面的工具包，使开发人员更容易建立自定义的web3社交体验和应用程序。

在Lens，我们的目标一直是使Web3的社交容易，既有经验的建设者和那些有限的经验或没有专门知识的网页3。我们认为，Lens SDK最强大的特性之一是，它通过提供开发人员可以使用的模块化工具栈，而不是从零开始构建社交特性和功能，从而抽象出在区块链上开发的复杂性。这使你能够专注于创造你想象中的独特体验。

**最新消息**

有了新的Lens SDK，你可以在你的应用程序中添加社交订阅，社交档案和/或社交认证，只需要10行代码，并且不需要任何区块链知识。

我们看到越来越多的应用程序集成了社交功能，如**向 Lens 共享**内容，为 web3 本地用户提供内容分发，以及**登录 Lens**，利用 Lens 社交图中的身份和配置文件。Lens SDK使集成变得更容易、更可定制。

SDK也是模块化和可组合的。它与其他web3项目、协议和工具（如Lit Protocol）无缝集成，以启用以代币为门槛的发帖。

使用Lens SDK，您可以挑选您想要的功能-只有您使用的组件有助于您的应用程序包的最终大小。这些功能都由Lens SDK处理，让您可以专注于核心功能，而无需担心底层基础架构的复杂性或细节。

移动应用程序一直是Lens最大的成功案例之一。新的 SDK 增加了移动支持，从React native 开始。使用新的SDK，您可以构建完美的移动应用程序，而无需任何Lens API或Lens Protocol的基础知识。

在过去的一年里，数以千计的开发者已经在Lens上发布了无数的应用程序、协议和工具。借助Lens SDK，我们降低了障碍，使创建创新、强大和吸引人的Lens应用程序变得更加容易。

**支持平台**

Lens SDK支持多种平台，包括:

*   **ReactiveWeb**：通过一组具有凝聚力的ReactiveHooks将LensSDK集成到您的ReactiveWeb应用程序中。如果您的堆栈包含ReactJS，它可以使用LensSDK。
    
*   **Vanilla JavaScript**：也许您的 web 应用程序不包含 ReactJS ，或者您使用的是不同的前端框架。您仍然可以通过`LensClient`.
    
*   **React native**：从您的移动应用程序中集成Lens协议从来没有这么容易过。只要提供对您的项目最有意义的适配器，就可以了。
    
*   **NodeJS**：构建一个与 Lens API 交互的脚本，将 Lens 协议集成到你的 NodeJS 后端，你甚至可以从一个无服务器函数调用它。
    

**两种主要的集成方法**

Lens SDK 有两种_风格_，两种与 Lens Protocol 集成的不同方式。

*   **React hook**用于 React web 和 React Native 应用程序中的熟悉集成
    
*   **LensClient**为_更接近金属与Lens API的整合_
    

![](https://storage.googleapis.com/papyrus_images/679f0b308a7dd1ed9e75355d1292d662eb17d340f63b2f228609313d10c3e911.png)

React Hook

Lens SDK React挂钩旨在提供开箱即用的最佳用户体验。了实现这一目标，我们重点关注了以下几个关键方面：

*   **Optimistics 升级**:目的是让每个特性都感觉像传统的 web2 一样快，但是有 web3 基础设施的基本保证。
    
*   \*\*弹性身份验证Layer ：\*\*身份验证逻辑被设计成与用户的钱包生命周期脱钩。其想法是建立用户可以随意往返的体验，而无需考虑切换网络。这产生了传统社交媒体的体验。用户也不会在钱包中看到未经请求的签名请求。
    
*   \*\*内聚力状态管理层：\*\*SDK 附带了一个存储层，可以在重新加载事件后可靠地恢复应用体验，这也意味着 SDK 将使您的浏览器标签保持同步。
    
*   **模块化设计**： Lens SDK 是一系列垂直模块的集合。只选择你想要体验的功能，并且只有这些模块会影响你的应用包的最终大小。只要确保你的构建过程可以执行“摇杆”，你就可以开始了。
    
*   \*\*可组合：\*\*Lens SDK 利用了其他 web3 领先项目作为其功能的一部分。例如，标记门控出版物是由[Lit 协议](https://litprotocol.com/)。Lens SDK 隐藏了所有集成复杂性，以便您可以专注于对您重要的事情。
    

**客户服务**

这`LensClient`提供了与Lens API集成的较低级别方法。这意味着在一组内聚的函数中公开Lens API特性。不需要学习GraphQL来使用Lens API。

实例化客户端并调用所需的方法：

    import { LensClient, production } from "@lens-protocol/client";
    
    const lensClient = new LensClient({ environment: production 
    });
    
    const profile = await lensClient.profile.fetch({ handle:"stani.lens"
    });
    

当Lens SDK React hook不合适时，可以使用此选项。 此外，Lens API中的任何前沿或实验性功能都可以通过`LensClient`在它们被主流化到SDK React挂钩之前。

> 通过@lens-protocol/ client @ next ，新的momoka[莫莫卡](https://github.com/lens-protocol/momoka)突变已经可以在 dev 预览版中看到了。

**开发经验**

在实现SDK时，我们特别重视开发人员体验。一些关键方面是：

*   与web3生态系统中使用的其他工具和技术的互操作性
    
*   明确的升级策略
    
*   一个开源的系统，所以任何人都可以详细检查并提出改进建议
    
*   可组合性，允许您以新颖的方式组合组件，从而促进创新，并将其他协议集成的复杂性抽象化，使您可以专注于自己的独特功能
    

**互操作性**

Lens SDK附带:

*   一流的TypeScript支持，提供安全和引导式的采用体验。
    
*   集成了[以太](https://ethers.org/)网最流行的web3 JS库之一。
    
*   开箱即用适配器的[wag](https://wagmi.sh/)mi ，[网络加密 API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API)和[网络存储 API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API)
    

如果上面的选择不适合你，通过以下方式来适应你的需求：

*   提供您自己的Ethers.js`Signer`
    
*   使用您自己的存储解决方案
    
*   利用最适合您平台的加密API
    

**升级路径**

无论您选择哪种集成方式，Lens SDK的发布周期都旨在与Lens工具生态系统的其他部分一起发展。修复和新特性将对现有代码的影响最小。当必须进行重大更改时，SDK将提前通过弃用警告和建议的迁移路径来指导您。

> 💡专业提示：现在就采用Lens SDK，将即将到来的Lens协议升级的影响降到最低。

**开放源代码**

Lens SDK从一开始就是开源的。随意打开一个[GitHub 问题](https://github.com/lens-protocol/lens-sdk/issues)

**集成阶梯**

我们认为Lens协议集成是一个图谱。

![](https://storage.googleapis.com/papyrus_images/f07ee0b7a9de029648af34d460bc7f97cd05f0f88fc7d474a341c1f45a8c0b08.png)

从左到右我们有：

*   与议定基本组成部分之间的相互作用。例如：侦听EVM事件，订阅Momoka数据流，以及进行RPC调用。
    
*   使用Lens API，它以GraphQL接口的形式在Lens Protocol基础之上提供了一个内聚抽象。
    
*   通过Lens SDK LensClient使用Lens API,LensClient抽象出Lens API GraphQL模式，并在堆栈中引入类型安全（如果您使用TS，则选择加入）。
    
*   最后，在远端，我们有React hook，这是Lens SDK提供的最面向用户体验的集成。
    

你可以用Lens SDK做什么呢？

下面是您可以使用Lens SDK构建的一些想法。

**社交网络支持的应用程序！**

最明显的用例是构建社交应用程序。由于SDK还支持React Native，您不仅可以使用SDK构建Web应用，还可以使用SDK构建移动应用。

下面是几个应用程序的想法：

1.  基于人工智能的音乐生成应用程序和市场，将收入分配给像[Grimes](https://twitter.com/Grimezsz)
    
2.  用于发送、接收和可能购买加密货币的移动应用程序，具有社交功能和发现功能（想想web3 Venmo）
    
3.  Microblogging-Lens对于CMS类型的后端来说是完美的，它具有发现、可组合性和通过收集的用户货币化的额外好处。
    
4.  数字艺术或收藏品的专业市场或利基市场
    
5.  端到端加密的对等消息应用程序
    
6.  选举投票应用程序，调查或只是为了好玩
    
7.  数字身份管理系统
    
8.  内容创作者的社交网络与收入分享
    
9.  去中心化的众筹或筹款平台
    
10.  创建和销售数字订阅的平台
    
11.  基于Web的社交游戏平台
    

**工具**

因为所有的基础设施、数据和Lens API都是开放且无需许可的，所以有无数种方法可以在协议之上构建新的有趣的工具。

*   类似讨论的注释模块
    
*   创建、策划和/或管理内容
    
*   开源SDK、UI组件和库
    
*   利用新模块构建流畅或改进的用户界面，以便与现有模块进行交互
    
*   将 web2 足迹迁移到Lens（如 [InLens](https://inlens.xyz/)）
    
*   内容发现
    
*   将Lens profile的操作委托给其他钱包、智能合约或DAO
    

**积分**

除了直接在Lens上构建应用程序之外，您可能还希望将Lens作为web3社交层集成到其他新的或现有的应用程序中。每一个使用Lens的应用程序都会使整个生态系统受益，将通常的零和游戏变成协作游戏。

下面是几个集成的例子：

*   使用Lens登录-访问用户的个人资料信息，如姓名、简介、社交网址、图片、兴趣、声誉和活动。
    
*   共享到Lens–帮助将您的应用程序及其内容分发给更多的受众。
    
*   在Lens上关注-从另一个页面在Lens上关注用户
    
*   个人资料-在任何web3应用程序中显示用户的社交资料。
    
*   发布-将Lens发布的内容嵌入到任何web3应用程序中。
    

**代币化**

Mirror、Collect、关注和评论让创作者无需中间人，以一种无需授权的方式，直接向用户出售他们的内容。因为创作者在Lens上拥有自己的内容，他们可以允许他们的追随者购买这些内容。

当用户将出版物发布到其Profile NFT时，他们可以选择设置Collect Module。这允许用户生成链接到出版物ContentURI的NFT。该模块可以包含任何适用于铸造过程和产生的NFT的任意逻辑。

创建者可以通过为通过他们的mirror收集的每个帖子提供费用来激励他们的帖子的推广。

这里有几个例子，你可以在你的应用程序中内置：

*   通过付费订阅盈利受众
    
*   激励分享（mirror）内容的人
    
*   在创建者和其他人（多个接收者）之间分配收入
    
*   基于收集或付款的门控内容
    
*   营销和广告
    

**更多的想法**

要了解更多的想法，请参阅我们的文档中[构建者的灵感](https://www.notion.so/1db7dbd3e7b14eaf9a97a341b1a3ff55)部分。

**接下来去哪里？**

*   [React Web](https://docs.lens.xyz/docs/sdk-react-intro)\-入门和教程
    
*   [Rep本机](https://docs.lens.xyz/docs/cyan-nails-turn-react-native-integration)\--如何将Lens SDK集成到您的Reaction本地应用程序
    
*   [LensClient](https://docs.lens.xyz/docs/lensclient-sdk)\-从这里开始然后为每个 Lens API 特性查找专门的 Lens`LensClient`示例。
    
*   [SDK 参考资料](https://lens-protocol.github.io/lens-sdk/index.html)\-详细的 TSDoc 生成的文档和示例。我们正在不断地改进这一点。如果有不清楚的地方请询问我们的不和谐频道，我们将更新它。
    
*   [示例](https://github.com/lens-protocol/lens-sdk/tree/main/examples)\-Next.js， wagmi ，Vite.js、React native和 NodeJS
    
*   [GitHub](https://github.com/lens-protocol/lens-sdk/issues)\-报告问题和/或提出建议
    
*   [支持](https://discord.gg/lensprotocol)\-头部到Lens [API 和 SDK](https://discord.com/channels/918178320682733648/950387409663721542)

---

*Originally published on [clarkwang.eth](https://paragraph.com/@clarkwang-eth/lens-sdk)*
