我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求

Posted

技术标签:

【中文标题】我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求【英文标题】:I need to do a http request to a mail chimp subscription list via a component post 【发布时间】:2016-05-12 20:34:34 【问题描述】:

我需要通过组件帖子向邮件黑猩猩订阅列表发出 http 请求

我已阅读邮件黑猩猩文档,但找不到任何相关内容。 我还在 Angular 2 html5 视图中尝试了他们的邮件黑猩猩嵌入形式,但由于某些奇怪的原因,这不起作用。

因此,我改为向订阅列表发出 http 请求,但无法正常工作。

我正在使用 typescript、angular2 和 mail chimp

这是我目前的代码:

  subscribe = () => 
        var url = "https://mysubscriptionlist.us10.list-manage.com/subscribe/post?u=b0c935d6f51c1f7aaf1edd8ff&id=9d740459d3&subscribe=Subscribe&EMAIL=" + this.email;    
        this.jsonp.request(url).subscribe(response => 
           console.log(response);
        );   
  

这是我当前在 chrome 中的控制台日志错误:

Uncaught SyntaxError: Unexpected token

【问题讨论】:

您能通过“网络”标签查看回复吗?它可能返回一个错误而不是 json 如果您在新标签页中打开url,原因就很明显了。 【参考方案1】:

我终于找到了解决您的问题的方法。需要使用Angular2的Jsonp支持。

您的地址通过将c 查询参数添加到您的URL 并将https://mysubscriptionlist.us10.list-manage.com/subscribe/post 切换为https://mysubscriptionlist.us10.list-manage.com/subscribe/post-json 来支持Jsonp。您需要将JSONP_CALLBACK 值放入其中(请参阅此问题:https://github.com/angular/angular/issues/5613)。

在这种情况下,您将拥有以下响应负载:

JSONP_CALLBACK (

  "result": "success",
  "msg": "Almost finished... We need to confirm your email address. To complete the subscription process, please click the link in the email we just sent you."

)

在调用bootstrap函数时注册了JSONP_PROVIDERS后:

import bootstrap from 'angular2/platform/browser'
import JSONP_PROVIDERS from 'angular2/http'
import AppComponent from './app.component'

bootstrap(AppComponent, [ JSONP_PROVIDERS ]);

然后您可以使用从构造函数注入的Jsonp 类的实例来执行您的请求:

import Component from 'angular2/core';
import Jsonp from 'angular2/http';

@Component(
  selector: 'my-app',
  template: `
    <div>
      Result: result | json
    </div>
  `
)
export class AppComponent 
  constructor(jsonp:Jsonp) 
    var url = 'https://mysubscriptionlist.us10.list-manage.com/subscribe/post-json?u=(...)&subscribe=Subscribe&EMAIL=my@email.com&c=JSONP_CALLBACK';
    jsonp.request(url,  method: 'Get' )
     .subscribe((res) => 
       this.result = res.json()
     );
  

查看此 plunkr 以获取工作示例:http://plnkr.co/edit/dqreqBL6kyNkR8Z2wgGR?p=preview

【讨论】:

我现在有一个 200 ok 的消息,这很好。但现在它没有添加到邮件黑猩猩订阅列表。那是因为我们开始使用jsonP 我没有收到任何错误,一切看起来都很好。但未添加用户 事实上,我在请求中设置的电子邮件地址收到了一封确认电子邮件。有一个用于确认订阅的链接;-) 我点击了电子邮件中的链接。你应该看到我出现了...... 现在一切正常 - 感谢您的帮助。邮件黑猩猩发送电子邮件很慢

以上是关于我需要通过组件帖子向 mailchimp 订阅列表发出 http 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 api 向 mailchimp 订阅者添加“标签”

向 MailChimp 添加新订阅者返回错误请求

发生一个或多个错误。(发送请求时发生错误)Mailchimp 列表集成

如何在不到 1.00 秒内从 Zapier python 发送帖子?

取消订阅后将用户重新订阅到 MailChimp 列表

如何使用 nodejs 在 mailchimp 订阅者列表中创建标签?