MIS 160 Systems Development Life Cycle
Natalya Tupikova
Exercise # 2
normalize($form);
// Authenticate request with OAuth 1.0
$server = new TestOAuthServer(new MockOAuthDataStore());
$hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
$server->add_signature_method($hmac_method);
try {
$req = OAuthRequest::from_request(Null, Null, $parameters=$norm_params);
list($consumer, $token) = $server->verify_request($req);
} catch (OAuthException $e) {
die();
}
// We've established the request is really originating from FormSmarts.
// We can now start to do something useful...
// Note: Do NOT insert your own code before this line!
// Find email field
$email = '';
$fields = $form->{'fields'};
foreach($fields as $field) {
if ($field->{'field_datatype'} == 'email') {
$email = $field->{'field_value'};
break;
}
}
if (! $email) die();
// Enter your MailChimp API key and list ID below:
$mailchimp_api_key = "";
$mailchimp_list_id = "";
// Prepare request
list(, $dc) = explode('-', $mailchimp_api_key);
$endpoint = 'https://'.$dc.'.api.mailchimp.com/2.0/lists/subscribe.php';
$data = json_encode(array(
'apikey' => $mailchimp_api_key,
'id' => $mailchimp_list_id,
'email' => array('email' => $email)
));
$options = array(
'http' => array(
'protocol_version' => 1.1,
'method' => 'POST',
'header' => "Content-type: application/json\r\n".
"Connection: close\r\n" .
"Content-length: " . strlen($data) . "\r\n",
'content' => $data,
),
);
// Submit request to MailChimp
$context = stream_context_create($options);
$result = file_get_contents($endpoint, false, $context);
?>