小编Den*_*nko的帖子

如何通过 SendGrid 发送 .ics 日历邀请,以便它在电子邮件客户端中呈现?

我正在尝试.ics通过 SendGrid (从节点服务器)发送日历邀请,以便它在 Outlook 或 Gmail 等客户端中呈现为实际邀请(带有接受/拒绝按钮),而不仅仅是作为附件文件。

我花了几天时间研究这个问题(数十个 Stackoverflow 问题、RFC -5545RFC-2446iCalendar规范摘录、Sendgrid 的 GitHub 问题线程:1、2、3 、 SendGrid文档、源等)。

然而,似乎没有答案(或者我错过了什么?)。


到目前为止我发现Content-Type附件在这里非常重要,尤其是method=REQUEST部分。甚至文件中属性的顺序也会有所不同

尽管这里有很多关于 SO 的问题,但由于某种原因,大多数问题仍然没有得到解答。


这是我设置attachment对象的方法:

const SendGrid = require("@sendgrid/mail");

  const attachment = {
    filename: 'invite.ics',
    name: 'invite.ics',
    content: Buffer.from(data).toString('base64'),
    disposition: 'attachment',
    contentId: uuid(),
    type: 'application/ics'
  };

SendGrid.send({
      attachments: [attachment],
      templateId,
      from: {
        email: config.emailSender,
        name: config.emailName,
      },
      to: user.email,
      dynamicTemplateData: {
        ...rest,
        user,
      }, …
Run Code Online (Sandbox Code Playgroud)

icalendar outlook gmail sendgrid sendgrid-api-v3

17
推荐指数
2
解决办法
1万
查看次数

如果身份验证器中的身份验证令牌已过期,请使用刷新令牌

我有一个使用AccountManager存储用户帐户的应用程序.用户使用OAuth2.0 password-username凭据流登录并通过我的REST API注册.

用户收到的访问令牌将在2小时后到期,需要刷新才能再次过期,依此类推.

我需要在我的身份验证器中实现这个刷新功能.

我有一个模型AccessToken,其中包含以下字段:

String accessToken, String tokenType, Long expiresIn, String refreshToken, String scope, Long createdAt.

所以目前,我getAuthTokenAccountAuthenticator课堂上的方法中收到了这个AccessToken对象,并将其accessToken字段用作Auth Token我的客户经理.

我需要的是以某种方式使用我的客户经理存储刷新令牌和身份验证令牌,当应用程序尝试访问API并获得错误响应时:{"error": "access token expired"},使用先前收到refreshTokenAccessToken对象中的字符串刷新当前访问令牌.但是,我不确定应该怎么做.

getAuthToken在authenticator类中的方法目前如下所示:

@Override
public Bundle getAuthToken(AccountAuthenticatorResponse accountAuthenticatorResponse, Account account,
                           String authTokenType, Bundle options) throws NetworkErrorException {
    if (!authTokenType.equals(AccountGeneral.AUTHTOKEN_TYPE_READ_ONLY) &&
            !authTokenType.equals(AccountGeneral.AUTHTOKEN_TYPE_FULL_ACCESS)) {
        final Bundle result = new Bundle();
        result.putString(AccountManager.KEY_ERROR_MESSAGE, "Invalid authTokenType");
        return result;
    }

    final AccountManager manager …
Run Code Online (Sandbox Code Playgroud)

authentication api android accountmanager access-token

13
推荐指数
1
解决办法
7336
查看次数

使用es7 async/await检查mongodb中是否存在文档

我正在尝试检查具有email提供的用户是否存在于集合中users,但我的函数对于每个调用都保持返回undefined.我使用es6并且async/await为了摆脱大量的回调.这是我的函数(它在一个类中):

async userExistsInDB(email) {
    let userExists;
    await MongoClient.connect('mongodb://127.0.0.1:27017/notificator', (err, db) => {
        if (err) throw err;

        let collection = db.collection('users');

        userExists = collection.find({email: email}).count() > 0;
        console.log(userExists);

        db.close();
    });
    console.log(userExists);
    return userExists;
}
Run Code Online (Sandbox Code Playgroud)

所以,调用console.log内部的第一个.connect总是返回,false因为返回的值.find不是数组,它是一个巨大的对象,如下所示:

{ connection: null,
  server: null,
  disconnectHandler: 
   { s: { storedOps: [], storeOptions: [Object], topology: [Object] },
     length: [Getter] },
  bson: {},
  ns: 'notificator.users',
  cmd: 
   { find: 'notificator.users',
     limit: 0,
     skip: 0,
     query: …
Run Code Online (Sandbox Code Playgroud)

mongodb node.js node-mongodb-native ecmascript-7

12
推荐指数
1
解决办法
5556
查看次数

ruby 2中的DateTime减法?

我需要减去两个DateTime对象,以便找出它们之间的小时差异.

我尝试执行以下操作:

a = DateTime.new(2015, 6, 20, 16)
b = DateTime.new(2015, 6, 21, 16)
puts a - b
Run Code Online (Sandbox Code Playgroud)

我知道(-1/1)了,上课的对象Rational.

所以,问题是,我如何找出这两个日期之间的差异是什么?几小时或几天,或其他什么.

Rational当我减去DateTimes时,这意味着什么/代表什么?

BTW:

当我试图减去DateTime1年的差异时,我得到了(366/1),所以当我这样做时(366/1).to_i,我会得到天数.但是当我尝试DateTime用1小时的差异减去两个 时,它给了我-1,小时数.那么,我如何找出返回值(小时,天,年,秒)的含义?

ruby datetime ruby-2.2

11
推荐指数
2
解决办法
6195
查看次数

如何使用PostgreSQL解决Rails中的错误'fe_sendauth:没有提供密码'?

我试图用postgresql数据库创建我的Rails应用程序,但是当我开始时rails server,我收到了这个错误:

fe_sendauth:没有提供密码

这是我一步一步的行动:

$ sudo apt-get install postgresql postgresql-contrib
$ gem install pg
$ rails new timetracker --database=postgresql --skip-unit-test
Run Code Online (Sandbox Code Playgroud)

我的database.yml文件看起来像这样:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  host: localhost
  username: postgres
  password:

development:
  <<: *default
  database: timetracker_development

test:
  <<: *default
  database: timetracker_test

production:
  <<: *default
  database: timetracker_production
Run Code Online (Sandbox Code Playgroud)

这是我的pg_hba.conf档案:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails-4 postgresql-9.3 ubuntu-14.04

8
推荐指数
2
解决办法
1万
查看次数

如何将 Strapi API 和管理面板与另一个节点应用程序(使用 Strapi API)集成?

我正在尝试开发一个使用 Strapi Admin Panel api 生成的应用程序,同时充当使用此 api 的网站。

所以,基本上,我正在尝试建立一个网站:

  • 其中/api路由服务器作为 Strapi API 端点

  • 其中/adminroute 作为 API 创建的 Strapi 管理面板

  • 所有其他路由都配置为为我的网站提供服务,即:

    • / 路线是我网站的登陆页面

    • /contacts 是联系人页面

    • 等等。

  • 而且,网站的静态文件 (html/css/etc) 应该从分别使用生成的 API(服务器端)的服务器提供。


我希望我没有太含糊地表达自己。

本质上,我需要将一个 node.js 应用程序(我的网站)与另一个 node.js 应用程序(Strapi)集成,以便它们作为一个.


有谁知道如何实现这一目标?


我已经在 Stackoverflow 和 Strapi GitHub 问题上阅读了一些答案,有些人说实现这一目标的方法是在不同的端口上运行两个单独的应用程序,但我觉得不合适(或者我可能只是不不明白一些基本的东西)。

我需要的是制作一个应用程序,它基本上是一个简单的多页网站,但使用 Strapi 的 api 生成工具进行了增强。


我已经启动并运行我的 Strapi 应用程序,我想也许我应该在应用程序文件夹结构中找到某个位置来放置我的网站(即所有静态内容到public文件夹中),但是在哪里放置服务器端内容?

而且我需要使用模板引擎,因此“将客户端文件放在哪里”的问题再次出现。我越深入代码,我就越困惑。


PS:我可以使用 Koa 作为 Strapi 的服务器。

PPS:此外,我计划在单个 Dyno 上将该应用程序部署到 Heroku(如果它很重要)。

heroku node.js strapi

6
推荐指数
1
解决办法
2880
查看次数

ActiveRecord的.按属性查找所有记录,其值包含在数组中

我需要在我的User模型上创建一个范围,以便将所有用户的电子邮件属性包含在AdminUser模型的电子邮件中.

基本上,模型中有一个属性email,User模型中有相同的属性AdminUser.所以,我需要获得所有实际管理员的用户(通过电子邮件).

我没有成功实现这个作为一个签名查询,并开始获取AdminUser电子邮件数组:

emails = AdminUser.pluck(:email)
Run Code Online (Sandbox Code Playgroud)

现在我正在努力从User模型中获取管理员用户数组.

如果我写这样的东西:

User.find_by_email(emails)
Run Code Online (Sandbox Code Playgroud)

我只得到一个实体,而不是数组.


所以,我的问题:

我怎样才能adminsUser将返回管理员数组的模型上创建一个范围?


BTW:出于其他目的,我在我的方法中使用了这种方法User:

  def admin?
    AdminUser.find_by(email: email) ? true : false
  end
Run Code Online (Sandbox Code Playgroud)

所以,也许我可以在这种情况下以某种方式利用它?

activerecord ruby-on-rails-4

5
推荐指数
2
解决办法
8611
查看次数

是否可以在VisualStudio中设置OpenMP 4.0?

是否可以在VisualStudio环境中设置比2.0版本更新的OpenMP?

也许可以设置另一个编译器来运行代码(如英特尔C++编译器)或其他东西?

c++ openmp visual-studio

5
推荐指数
0
解决办法
1714
查看次数

使用opencv_contib安装OpenCV 3.2时未指定"OPENCV_TEST_DATA_PATH环境变量"

我正在尝试在Ubuntu 16.04上安装OpenCV 3.2opencv_contrib中的模块.

但是,当我运行该sudo make install命令时,我得到以下输出:

?  build git:(master) sudo make install
-- Detected version of GNU GCC: 54 (504)
-- FP16: Feature disabled
-- Found ZLIB: /usr/lib64/libz.so (found suitable version "1.2.8", minimum required is "1.2.3") 
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not …
Run Code Online (Sandbox Code Playgroud)

installation opencv build opencv3.0 opencv3.1

5
推荐指数
1
解决办法
2193
查看次数

使用Ruby扫描方法捕获组不能按预期工作

我需要从多行字符串中获取一组浮点数(正数和负数).例如:-45.124, 1124.325等等

这是我做的:

text.scan(/(\+|\-)?\d+(\.\d+)?/)
Run Code Online (Sandbox Code Playgroud)

虽然它在regex101上工作正常(捕获组0匹配我需要的所有东西),但它在Ruby代码中不起作用.

任何想法为什么会发生以及如何改进?

ruby regex

4
推荐指数
1
解决办法
320
查看次数