Я использую codeignitor и делаю Aweber интеграции. Все работает нормально, я не хочу видеть страницу входа в Aweber без нажатия кнопки.
Я скачал отсюда https://github.com/aweber/AWeber-API-PHP-Library просто изменить ключ потребителя и секрета потребителя
<a title="New account" href='<?php echo base_url ('/index.php/Welcome'); ?>' onclick>New account</a>
<?php
require_once('aweber_api/aweber_api.php');
// Replace with the keys of your application
// NEVER SHARE OR DISTRIBUTE YOUR APPLICATIONS'S KEYS!
$consumerKey = "nnnnn";
$consumerSecret = "ddddddd";
$aweber = new AWeberAPI($consumerKey, $consumerSecret);
if (empty($_COOKIE['accessToken']))
{
if (empty($_GET['oauth_token'])) {
$callbackUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
list($requestToken, $requestTokenSecret) = $aweber->getRequestToken($callbackUrl);
setcookie('requestTokenSecret', $requestTokenSecret);
setcookie('callbackUrl', $callbackUrl);
header("Location: {$aweber->getAuthorizeUrl()}");
exit();
}
$aweber->user->tokenSecret = $_COOKIE['requestTokenSecret'];
$aweber->user->requestToken = $_GET['oauth_token'];
$aweber->user->verifier = $_GET['oauth_verifier'];
list($accessToken, $accessTokenSecret) = $aweber->getAccessToken();
setcookie('accessToken', $accessToken);
setcookie('accessTokenSecret', $accessTokenSecret);
header('Location: '.$_COOKIE['callbackUrl']);
exit();
}
# set this to true to view the actual api request and response
$aweber->adapter->debug = false;
$account = $aweber->getAccount($_COOKIE['accessToken'], $_COOKIE['accessTokenSecret']);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>AWeber Test Application</title>
<link type="text/css" rel="stylesheet" href="styles.css" />
<body style="display: none;">
<?php
foreach($account->lists as $offset => $list) {
?>
<h1>List: <?php echo $list->name; ?></h1>
<h3><?php echo $list->id; ?></h3>
<table>
<tr>
<th class="stat">Subject</th>
<th class="value">Sent</th>
<th class="value">Stats</th>
</tr>
<?php
foreach($list->campaigns as $campaign) {
if ($campaign->type == 'broadcast_campaign') {
?>
<tr>
<td class="stat"><em><?php echo $campaign->subject; ?></em></td>
<td class="value"><?php echo date('F j, Y h:iA', strtotime($campaign->sent_at)); ?></td>
<td class="value"><ul>
<li><b>Opened:</b> <?php echo $campaign->total_opens; ?></li>
<li><b>Sent:</b> <?php echo $campaign->total_sent; ?></li>
<li><b>Clicked:</b> <?php echo $campaign->total_clicks; ?></li>
</ul>
</td>
<?php
}
} ?>
</table>
<?php }
?>
<body>
</html>
Как только вы получите свой токен запроса от AWeber, у вас может быть кнопка, которая идет по этому URL:
https://auth.aweber.com/1.0/oauth/authorize?oauth_token={your_request_token}
Это откроет логин AWeber при запуске onClick. При получении токена запроса вы можете установить URL-адрес обратного вызова по своему усмотрению, поэтому после входа пользователя он будет перенаправлен на следующую страницу, и вы сможете обработать токен верификатора из нашего ответа. Это описано здесь:
Других решений пока нет …