pronto/mobilebundle

适用于移动解决方案的内容管理系统(CMS)包

安装: 658

依赖项: 1

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 1

公开问题: 0

语言:JavaScript

类型:symfony-bundle

v3.0.6 2024-05-06 12:44 UTC

README

目录

  1. 安装
  2. 升级
  3. 配置
  4. API 文档

安装

步骤 1. 安装框架

打开命令行控制台,执行以下命令以在文件夹内创建新项目:

$ composer create-project pronto/mobile-skeleton <package-name>

此命令要求您全局安装了 Composer,具体请参阅 Composer 文档中的安装章节

步骤 2:设置数据库

更新 .env 文件中的数据库连接以匹配您的配置

DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

然后,创建数据库模式

$ php bin/console doctrine:schema:create

并运行固定数据来提供初始数据

$ php bin/console doctrine:fixtures:load

这会创建 CMS 的第一个客户和一个超级管理员。

步骤 5:测试登录

当您运行 php bin/console doctrine:fixtures:load 时,会创建一个带有应用程序和用户账户的客户。

您可以通过安装 web-server-bundle 来测试您的应用程序,该 bundle 允许您在 https://:8000 启动服务器并查看您的应用程序。您可以通过安装 web-server-bundle 来完成此操作

$ composer require symfony/web-server-bundle --dev

然后运行以下命令来启动服务器

$ php bin/console server:run

现在,您可以通过以下凭据在 https://:8000/login 进行登录测试:电子邮件 admin@example.com 和密码 admin

步骤 6:设置 Firebase 集成

我们使用 Firebase 发送推送通知并在 Firebase 数据库中存储信息。这些信息包含设备和应用程序用户的登录信息。这些记录定期从 Firebase 数据库中提取并更新到 CMS 数据库中。这种方法用于减少对服务器的大量请求。

CMS 还在 Firebase 的云存储中存储通知模板。当用户收到通知时,可能会打开一个 html 模板。该模板也来自 Firebase。

最后,需要将 APNS 令牌转换为 Firebase 令牌,以便 iOS 设备能够接收通知。

6.1 创建 Firebase 项目

您可以通过访问Firebase 控制台并使用您的 Google 账户登录来完成此操作。现在您可以创建一个新的项目。完成后,您将被重定向到项目概览。

6.2 创建新的私钥

点击设置图标并选择“项目设置”。接下来,点击“服务帐户”选项卡。现在您有权限创建新的私钥。点击此按钮后,将下载一个服务帐户文件。

Firebase project settings

为了使 MobileBundle 能够连接到您的 Firebase 项目,您需要将此文件重命名为:google-service-account.json 并将其放置在项目的根目录中。

升级

大多数包的升级不需要对您的项目进行任何更改。当需要更改时,它们将在此列出。

v1.6.* 到 v1.7.0

此版本的版本中,服务配置略有变化。当在您的包中使用 Twig 时,您需要更新您的 packages/twig.yaml 文件

twig:
    globals:
-       pronto_mobile: '@pronto_mobile.global.app'
+       pronto_mobile: '@Pronto\MobileBundle\Service\ProntoMobile'
        entry_value_parser: '@Pronto\MobileBundle\Service\Collection\EntryValueParser'
        json_translator: '@Pronto\MobileBundle\Service\JsonTranslator'

MobileBundle 配置

MobileBundle 配置可在 config/packages/pronto_mobile.yaml 文件中找到。目前这里没有很多选项。

pronto_mobile:
    domain: 'pronto.am'
    uploads_folder: 'uploads'

    firebase:
        storage_decryption_password: 'ThisValueIsNotSoSecret'
域名

域名对于发送电子邮件非常重要。您在此提供的域名是邮件发送的域名。因此,使用默认值,邮件是从:noreply@pronto.am 发送的。

上传文件夹

这个选项非常明显。您可以在其中指定上传文件存储的文件夹。这也意味着目前,唯一的存储选项是本地存储。

Firebase:存储解密密码

这是用于解密Firebase实时数据库中日志表内值的密码。出于明显的原因,此值需要与您在MobileBundle的Android和iOS SDK中提供的值相同。

定时任务

有三种定时任务需要在后台运行以发送推送通知、从Firebase检索日志以及将APNS令牌转换为Firebase令牌。以下是您需要在服务器上注册以执行这些后台任务的命令。您可以自由更改它们执行的间隔。

crontab -e
*    * * * * php /path/to/project/bin firebase:notifications:send   // every minute
*/15 * * * * php /path/to/project/bin firebase:database:logs        // every 15 minutes
*/15 * * * * php /path/to/project/bin firebase:tokens:convert       // every 15 minutes

API 文档

Postman

提供了一个公开的Postman收藏集,其中包含目前可用的API路由。

APIDoc JS

MobileBundle使用apidocjs来生成API文档。文档位于public/apidoc文件夹中。

OAuth2

API文档没有列出OAuth的路由。MobileBundle的Android和移动SDK都使用OAuth连接到API。如果您不熟悉OAuth,建议您访问https://www.oauth.com以了解最新信息。

请求访问令牌的路由是:https://yourdomain.app/oauth/v2/token。您可以使用客户端凭据或使用应用用户的用户名和密码组合来请求访问令牌。

请求访问令牌:客户端凭据

文档:https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/

[POST] https://yourdomain.app/oauth/v2/token

{
	"grant_type": "client_credentials",
	"client_id": "1_66e8vp2mt2sccosk4w0ogswogsgww4wsokcw4wsc80w4s00woc",
	"client_secret": "5s6e0r58qn8k0wggk808ogss4g08kgs0w8wgo84cc4s84sw4ck"
}
请求访问令牌:用户名和密码

文档:https://www.oauth.com/oauth2-servers/access-tokens/password-grant/

[POST] https://yourdomain.app/oauth/v2/token

{
	"grant_type": "password",
	"username": "user@example.com",
	"password": "1234luggage",
	"client_id": "1_66e8vp2mt2sccosk4w0ogswogsgww4wsokcw4wsc80w4s00woc",
	"client_secret": "5s6e0r58qn8k0wggk808ogss4g08kgs0w8wgo84cc4s84sw4ck"
}