Skip to content

Instantly share code, notes, and snippets.

@keremciu
Created June 27, 2017 22:52
Show Gist options
  • Save keremciu/fb579d9884ce3239d8a5f763f79d6a03 to your computer and use it in GitHub Desktop.
Save keremciu/fb579d9884ce3239d8a5f763f79d6a03 to your computer and use it in GitHub Desktop.
MailChimp api v3 - request handler for browser
<?php
include('./MailChimp.php');
use \DrewM\MailChimp\MailChimp;
function cors() {
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
// you want to allow, and if so:
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
// may also be using PUT, PATCH, HEAD etc
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
}
cors();
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
$input = json_decode(file_get_contents('php://input'),true);
if ($method == 'POST' && isset($input["email"])) {
$MailChimp = new MailChimp('12312312312313-us1');
$email = $input["email"];
$list_id = '1111111';
$result = $MailChimp->post("lists/$list_id/members", [
'email_address' => $email,
'status' => 'pending',
]);
header('Content-type:application/json;charset=utf-8');
echo json_encode($result);
} else {
echo 'server';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment