客户端 JavaScript

要求订阅者关联其订阅的对话框示例

利用订阅关联功能,客户端 JavaScript 是创建 PPID与读者 Google 账号之间的新关联。在已配置的页面上,系统会向读者显示一个对话框,要求他们关联订阅。读者点击“Continue with Google”(使用 Google 账号继续)按钮后,可以选择要关联的账号,完成关联后会返回到已配置的页面。

您可以使用 swg.js 中的 linkSubscription 方法将 PPID 与读者的账号相关联。用法与之前的账号类似 关联功能(示例), 但该方法不会传递 promise,而是接受包含 PPID。

代码示例

这些客户端代码示例说明了如何发起链接, 以及(可选)如何使用 swg.js eventManager 来 监听 Analytics 事件并相应地进行路由。

启动“订阅关联”对话框

const result = await subscriptions.linkSubscription({publisherProvidedId:6789})

响应示例

成功关联的账号中的有效响应同时包含关联中使用的 PPID 和布尔值 success 状态。

console.log(result) //{publisherProvidedId: 6789, success: true}

订阅关联不需要使用 第三方 Cookie 或读取者的有效 Google 会话。这种调整方式 使用户可以随时进入链接体验 而不只是在购买后才提供。如果读者未登录 Google 账号,系统会在流程中提供登录的机会。

完整的客户端示例

<script
  async
  type="application/javascript"
  subscriptions-control="manual"
  src="https://news.google.com/swg/js/v1/swg.js">
</script>

<script>

  function linkSubscription(ppid) {
    self.SWG.push(async (subscriptions) => {
      try {
        const result = await subscriptions.linkSubscription({
          publisherProvidedId: ppid,
        })
        console.log(result)
      } catch(e) {
        console.log(e)
      }
    })
  }

  document.addEventListener('DOMContentLoaded', function () {
    (self.SWG = self.SWG || []).push(subscriptions => {
      subscriptions.init("PUBLICATION_ID");

      //Configure the event manager for analytics integration
      subscriptions.getEventManager().then(manager => {
        manager.registerEventListener((event) => {
            // Add code here to send the event to your analytics
            // sendToAnalytics(event);
          console.log(event);
        });
      });
    });

    document
      .querySelector("SELECTOR")
      .addEventListener('click', function(){
        linkSubscription(PPID)
      })
  });
</script>

创建 OAuth 客户端 ID

虽然订阅关联不需要 OAuth 客户端,但 OAuth 客户端 可用于为项目创建已获授权的网域许可名单。 已获授权的网域是指您的客户端 JavaScript 允许从中进行调用的网域列表。您的发布内容可能已有 OAuth 在发布商中心内配置的客户端 ID,用于 swg.js

  • 如果您的订阅关联客户端 JavaScript 调用源自之前验证过的域名,则无需执行任何操作。
  • 如果您的 JavaScript 是通过新域名运行的,请遵循 SwG OAuth 客户端 ID 配置说明

测试

为了测试订阅关联功能的客户端实现,代码 必须从具有已授权 JavaScript 源的服务器运行。

  1. 在生产环境中使用时,已获授权的来源可以来自配置的 OAuth 客户端,或发布内容设置中的已验证网域列表 。
  2. 用于开发或预演用途,使用无法验证的网域(例如 localhost) 或非公共服务器),则必须在所配置的 OAuth 中列出该域 客户端。

排查错误

测试客户端 JavaScript 时,最常见的问题是收到 尝试运行 JavaScript 时出现 403 - Not Authorized 错误。要解决 那么请确保您是在 或者您是在位于 关联 OAuth 客户端的授权 js 来源。

下一步

恭喜您完成客户端 JavaScript 集成。现在,您可以继续进行服务器端集成。这是同步读者的使用权。当您 实现并使用所需的服务器端 UpdateReaderEntitlements 函数, 可确保系统针对合适的受众 位订阅者。