首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用自定义API密钥对Zoho桌面扩展的调用进行身份验证?

如何使用自定义API密钥对Zoho桌面扩展的调用进行身份验证?
EN

Stack Overflow用户
提问于 2022-06-27 08:39:38
回答 1查看 107关注 0票数 1

我正试图通过创建一个Zoho办公桌分机来将我的应用程序与Zoho办公桌集成起来。

我希望扩展生成的所有调用也发送一个API密钥,这样我就可以在服务器上验证它,以确保是Zoho在进行调用。

我的理解是,我可以在Zoho中设置一个自定义的“连接”,它将在扩展程序的任何调用的头中包含一个自定义API键。

问题是,扩展进行的调用中没有一个在头中包含自定义API键。

--这就是我如何为扩展创建连接:

  1. 在Zoho内部,单击Connections选项卡> Custom > Create。以下是我在创建服务时使用的设置:
  • “服务名称”= "MyApp“
  • “服务链接名”= "myapp“
  • “身份验证类型”=“标头”
  • “参数键”= "api“
  • “参数显示名称”= "api“
  1. 单击刚才创建的服务的“创建连接”。以下是我在创建连接时使用的设置:
  • “连接名称”= "MyApp“
  • “连接链接名”= "myapp“
  • “使用登录用户的凭据”=“是”
  1. 单击刚才创建的连接"Connect“。然后输入Api键值(例如“123 Then”)。
  2. 复制刚创建的连接的"JSON“选项卡上的”示例代码“,并将其粘贴到扩展名plugin-manifest.json文件的plugin-manifest.json数组中。
  3. 运行zet pack打包扩展,然后上传到Zoho。
  4. 通过下面的Install链接将分机安装到Zoho办公桌。
  5. 在请求时再次授权连接(例如,“123 the”)。我不知道它为什么要求再次这样做,但我还是这么做了,以防万一。

在这个过程结束时,我假设发送到扩展resources.json中定义的同步推拉端点的所有调用都会在头中包含api键。但是它们没有,甚至没有一个用于这些调用的api头字段。

我使用hookbin.com对其进行了测试,您可以看到这些调用的详细信息,以及我认为应该包含的api头字段:https://hookbin.com/6JqjpyMNyzToO0ro3nGQ

我做错了什么?

这里是扩展名为:resources.json文件:

代码语言:javascript
复制
{
    "channel": {
        "resourceName"        : "webApp",
        "channelLogoPath"     : "/app/img/logo.png",
        "acceptAttachments"   : false,
        "updateRecords"       : true,
        "contentTypes"        : ["text/plain","text/html"],
        "redirectUrl"         : "https://hookb.in/6JqjpyMNyzToO0ro3nGQ",
        "includeQuotedMessage": false,
        "sync": {
            "push": "https://hookb.in/6JqjpyMNyzToO0ro3nGQ",
            "pull": "https://hookb.in/6JqjpyMNyzToO0ro3nGQ"
        }
    }
}

这里是扩展名为:plugin-manifest.json的文件:

代码语言:javascript
复制
{
  "locale": [
    "en"
  ],
  "service": "DESK",
  "storage": false,
  "type": "personal",
  "whiteListedDomains": [https://hookb.in"],
  "modules": {
    "widgets": [
      {
        "location": "desk.ticket.detail.rightpanel",
        "url": "/app/widget.html",
        "name": "Agent Cake Extension",
        "logo": "/app/img/logo.png",
        "icon": "/app/img/icon.png"
      }
    ]
  },
  "cspDomains": {
    "connect-src": []
  },
  "zohoAuthorisation": {},
  "callbackListener": {
    "onInstall": "https://hookb.in/6JqjpyMNyzToO0ro3nGQ",
    "onUpdate": "https://hookb.in/6JqjpyMNyzToO0ro3nGQ"
  },
  "connectors": [{
    "connectionLinkName": "myapp",
    "connectionName": "MyApp",
    "serviceName": "myapp",
    "userAccess": true,
    "isUserDefinedService": true,
    "sharedBy": "7002150130"
  }],
  "config": [],
  "moduleSupport": false,
  "secret": "somerandomstringhere"
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-02 22:02:43

我从Zoho的支持者那里得到了关于这件事的回答:

请注意,对于自定义连接,API键是由sigma内部处理的,不会在标头中传递。如果您想要API密钥,则必须手动将API键作为配置参数传递。一旦通过,就可以使用resources.json中的以下代码获取API密钥。 "push": "https://hookb.in/6JqjpyMNyzToO0ro3nGQ?apikey={{apikey}}"

因此,基本上,Sigma中的连接器不起作用,您必须添加api键作为查询参数。然后您可以在服务器上验证这一点。

resources.json截图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72769227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档