2016-06-27 21 views
1

私は簡単に自分の購読者を追跡するための管理領域を作っています。私が望むのは、新しい人が自分のリストを購読するたびに、自分のメールアドレスを表示して更新することだけです。以下に示すように、電子メールアドレスを電子メールで送信します。私は、加入者情報を取得して表示するために必要なコードがいくつかあると確信していますが、どこから取得するのかはわかりません。ここLaravelのMailchimpを使用してユーザを自動的にエクスポートします

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

class MailChimpController extends Controller 
{ 
    public $mailchimp; 
    public $listId = '111111111'; 

    public function __construct(\Mailchimp $mailchimp) 
    { 
     $this->mailchimp = $mailchimp; 
    } 

    public function manageMailChimp() 
    { 
     return view('mailchimp'); 
    } 

    public function subscribe(Request $request) 
    { 
     $this->validate($request, [ 
      'email' => 'required|email', 
     ]); 

     try { 


      $this->mailchimp 
      ->lists 
      ->subscribe(
       $this->listId, 
       ['email' => $request->input('email')] 
      ); 

      return redirect()->back()->with('success','Email Subscribed successfully'); 

     } catch (\Mailchimp_List_AlreadySubscribed $e) { 
      return redirect()->back()->with('error','Email is Already Subscribed'); 
     } catch (\Mailchimp_Error $e) { 
      return redirect()->back()->with('error','Error from MailChimp'); 
     } 
    } 
} 

と私は電子メールアドレスが表示されるようにしたい私のadmin.blade.phpファイルがある:私はlaravelパッケージhttps://github.com/skovmand/mailchimp-laravel

enter image description here

を使用していますと、ここに私のmailchimp conbtrollerです。

@extends('layouts.app') 

@section('content') 
<div class="container"> 
    <h1 class="text-center">Subscribers</h1> 
    <table class="table"> 
     <thead> 
      <tr> 
       <th>Check</th> 
       <th>Email</th> 
       <th>City</th> 
       <th>Airport</th> 
      </tr> 
      <tbody> 
       <tr> 
        <td></td> 
       </tr> 
      </tbody> 
     </thead> 

    </table> 
</div> 
@endsection 

私に必要なものがあれば教えてください。どんな助けもありがとう!

答えて

1

これを行うには、MailChimp APIにアクセスする必要があります。これはRESTサービスなので、php-curlを使ってアクセスできます。ここで

は例です:

public function getMailChimpList() { 
    $mailchimpId = "YOUR_MAILCHIMP_ID"; 
    $listId = "LIST_ID"; 
    $apiKey = "YOUR_API_KEY"; 
    $mailchimpUrl = "https://us11.api.mailchimp.com/3.0"; 

    //this url may be different, check your API endpoints 
    $url = $mailchimpUrl . '/lists//' . $listId . '/members/'; 
    $header = 'Authorization: apikey ' . $apiKey; 

    return self::sendData($url, $header); 
} 

private static function sendData($url, $header) { 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_HEADER, false); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, array($header, 'Content-Type: application/json')); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    $result = trim(curl_exec($curl)); 
    curl_close($curl); 
    return $result; 
} 
+0

は、この私のコントローラで行くだろうか? – avasssso

+0

はい、コントローラに追加して、ブラウザにアクセスできるように、関数に "getMailchimpList()"をルートに追加することはできません。 –

+0

リスト内で他の操作を行う必要がある場合は、mailchimp APIリファレンスを読むことをおすすめします。http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/# –

関連する問題