Dittofeed嵌入式组件:iframe集成

Dittofeed嵌入式组件:iframe集成

【免费下载链接】dittofeed Automate messages across email, SMS, webhooks, & native mobile push 📨 💬 📧 【免费下载链接】dittofeed 项目地址: https://gitcode.com/GitHub_Trending/di/dittofeed

引言:为什么选择嵌入式集成?

在现代SaaS应用中,消息自动化已成为提升用户参与度和转化率的关键功能。Dittofeed通过嵌入式组件提供了一套完整的消息自动化解决方案,让您无需重新开发核心功能,就能为应用添加专业的旅程构建、用户分群、邮件模板管理和订阅管理能力。

通过iframe集成方式,您可以在自己的应用中无缝嵌入Dittofeed的功能模块,实现:

  • 快速集成:无需复杂的前端开发
  • 安全隔离:iframe提供天然的安全边界
  • 功能完整:获得Dittofeed全部专业功能
  • 品牌一致性:保持应用整体用户体验

核心概念解析

工作空间架构

Dittofeed采用多租户工作空间架构,支持父工作空间和子工作空间的层级管理:

mermaid

认证流程

mermaid

集成步骤详解

步骤1:获取父管理员API密钥

首先需要联系Dittofeed团队获取父工作空间的管理员API密钥:

# 联系信息
邮箱:support@dittofeed.com
Discord:Dittofeed社区

步骤2:创建子工作空间

使用API创建子工作空间,可关联外部ID以便管理:

curl -X PUT \
  -H "Authorization: Bearer <parent-admin-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "我的客户业务",
    "externalId": "1234567890", 
    "workspaceId": "<parent-workspace-id>"
  }' \
  https://app.dittofeed.com/api-l/admin/workspaces/child

响应包含子工作空间ID和写入密钥:

{
  "id": "6eed2156-606a-4666-925e-7f89adddd743",
  "name": "我的客户业务",
  "externalId": "1234567890",
  "writeKey": "Basic OTQ0MjNkNzctMzA0Ni00MDBhLTgxMDYtMTM2ZTIzZmQyMzE2OjQ3YjRlYzExOTM3NDE3MjU=",
  "type": "Child",
  "status": "Active"
}

步骤3:创建会话令牌

在后端创建会话令牌供前端使用:

curl -X POST \
  -H "Authorization: Bearer <write-key>" \
  -H "Content-Type: application/json" \
  -d '{"workspaceId": "<child-workspace-id>"}' \
  https://app.dittofeed.com/api-l/sessions

响应包含1小时有效期的会话令牌:

{
  "token": "1234567890"
}

嵌入式组件集成指南

旅程编辑器

创建和编辑自动化旅程的核心组件:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/journeys/v2?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}&id=${JOURNEY_ID}"
  width="100%"
  height="600px"
  frameborder="0"
  allowfullscreen
></iframe>

参数说明:

  • token: 会话令牌
  • workspaceId: 子工作空间ID
  • id: 旅程ID(新建时省略)

旅程列表

查看和管理所有旅程:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/journeys?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}"
  width="100%"
  height="500px"
  frameborder="0"
></iframe>

广播编辑器

创建一次性消息广播:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/broadcasts/v2?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}&id=${BROADCAST_ID}"
  width="100%"
  height="700px"
  frameborder="0"
></iframe>

模板编辑器

支持多种消息类型的模板编辑:

邮件模板:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/templates/email?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}&id=${TEMPLATE_ID}"
  width="100%"
  height="800px"
  frameborder="0"
></iframe>

短信模板:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/templates/sms?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}&id=${TEMPLATE_ID}"
  width="100%"
  height="500px"
  frameborder="0"
></iframe>

用户分群管理

创建和管理用户分群:

<iframe
  src="https://app.dittofeed.com/dashboard-l/embedded/segments/v1?token=${SESSION_TOKEN}&workspaceId=${CHILD_WORKSPACE_ID}&id=${SEGMENT_ID}"
  width="100%"
  height="600px"
  frameborder="0"
></iframe>

最佳实践与配置建议

安全性配置

<!-- 推荐的安全配置 -->
<iframe
  src="..."
  width="100%"
  height="100%"
  frameborder="0"
  sandbox="allow-same-origin allow-scripts allow-forms allow-popups"
  referrerpolicy="strict-origin-when-cross-origin"
></iframe>

响应式设计

.embedded-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 75%; /* 根据组件类型调整比例 */
}

.embedded-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

错误处理机制

// 监听iframe加载错误
const iframe = document.querySelector('iframe');
iframe.addEventListener('load', function() {
  console.log('Dittofeed组件加载完成');
});

iframe.addEventListener('error', function() {
  console.error('Dittofeed组件加载失败');
  // 显示错误提示或重试机制
});

性能优化策略

懒加载实现

<iframe
  loading="lazy"
  src="..."
  width="100%"
  height="600px"
  frameborder="0"
></iframe>

预连接优化

<!-- 在head中添加预连接 -->
<link rel="preconnect" href="https://app.dittofeed.com">
<link rel="dns-prefetch" href="https://app.dittofeed.com">

常见问题排查

认证问题

错误现象可能原因解决方案
空白页面令牌过期重新获取会话令牌
403错误权限不足检查API密钥权限
404错误工作空间不存在确认工作空间ID正确

网络问题

// 网络状态监测
function checkDittofeedAvailability() {
  fetch('https://app.dittofeed.com/health')
    .then(response => {
      if (!response.ok) {
        showFallbackUI();
      }
    })
    .catch(() => {
      showFallbackUI();
    });
}

扩展功能集成

与现有用户系统集成

mermaid

事件跟踪集成

// 在您的应用中触发Dittofeed事件
function trackUserEvent(userId, eventName, properties) {
  fetch('https://api.dittofeed.com/v1/track', {
    method: 'POST',
    headers: {
      'Authorization': 'Basic ' + btoa(writeKey + ':'),
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      userId: userId,
      event: eventName,
      properties: properties
    })
  });
}

总结与展望

Dittofeed的iframe集成方案为SaaS应用提供了快速、安全的消息自动化能力集成路径。通过标准化的API接口和组件化设计,您可以在几天内为应用添加专业级的消息自动化功能。

关键优势:

  • 🚀 快速上线:减少数月开发时间
  • 🔒 安全保障:iframe提供天然隔离
  • 📊 功能完整:获得全部Dittofeed功能
  • 🎨 用户体验:保持应用整体一致性

随着消息自动化需求的不断增长,嵌入式集成将成为SaaS应用标准配置。Dittofeed持续优化嵌入式组件性能和用户体验,为开发者提供更强大的集成能力。

立即开始您的Dittofeed集成之旅,为应用用户提供更智能、更个性化的消息体验!

【免费下载链接】dittofeed Automate messages across email, SMS, webhooks, & native mobile push 📨 💬 📧 【免费下载链接】dittofeed 项目地址: https://gitcode.com/GitHub_Trending/di/dittofeed

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值