aweber авторизация cron

Тема в разделе "PHP", создана пользователем Delayer, 23 сен 2011.

Модераторы: latteo
  1. Delayer

    Delayer Создатель

    Регистр.:
    4 июл 2009
    Сообщения:
    39
    Симпатии:
    4
    Здравствуйте, второй день бьюсь над тем как сделать авторизацию в авебере по крону, может кто сталкивался, подскажет. вроде все делаю правильно, ловлю все куки и ставлю в курл но не авторизует...

    Использую библиотеку от авебера, когда делаю стандартными методами, т.е. когда логин и пароль надо ввести ручками все ОК, а когда в скрипте их указываю то ничего...

    собственно код:
    PHP:
    $callbackUrl 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
                list(
    $requestToken$requestTokenSecret) = $aweber->getRequestToken($callbackUrl);
                
                
                
    $ch curl_init();

                
    // Ловлю куки формы\
                
    curl_setopt($chCURLOPT_URL$aweber->getAuthorizeUrl());
                
    curl_setopt($chCURLOPT_COOKIE'requestTokenSecret='.$$requestTokenSecret.'; callbackUrl='.$callbackUrl);
                
    curl_setopt($chCURLOPT_REFERER$aweber->getAuthorizeUrl());
                
    curl_setopt($chCURLOPT_RETURNTRANSFER1);\
                
    curl_setopt($chCURLOPT_HEADER1);
                
                
    $res curl_exec($ch);
                
                
    curl_close($ch);
                
                
    preg_match_all('#Set-cookie:([^;/]+)\;#is'$res$cookies);
                
                
    // Собственно пытаюсь отправить все это дело
                
    $ch curl_init();
                
    curl_setopt($chCURLOPT_URL'https://auth.aweber.com/1.0/oauth/authorize');
                
    curl_setopt($chCURLOPT_COOKIE'requestTokenSecret='.$requestTokenSecret.';callbackUrl='.$callbackUrl.';'.$cookies[1][0].';'.$cookies[1][1].';');
                
    curl_setopt($chCURLOPT_REFERER$aweber->getAuthorizeUrl());
                
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
                
    curl_setopt($chCURLOPT_POSTFIELDS'oauth_username='.$username.'&oauth_password='.$passwd.'&oauth_token='.$requestToken.'&display=page');
                
    curl_setopt($chCURLOPT_HEADER1);
                
    curl_setopt($chCURLOPT_POST1);
                
                
    $res curl_exec($ch);
                
                
    curl_close($ch);
    Заранее благодарен за любую помощь.
     
  2. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    1
    https://auth.aweber.com/1.0/oauth/authorize
    400 Bad Request
    The server could not comply with the request since it is either malformed or otherwise incorrect.
    2
    на странице может быть js код или просто код который тоже нужно отрабатывать
    3
    проверка сертификата (https)

    зы - а так вариантов много - если б страница открылась
    ысче - фидлером послушай трафик все что творится для начала, а потом дальше смотри.
     
    Delayer нравится это.
  3. Delayer

    Delayer Создатель

    Регистр.:
    4 июл 2009
    Сообщения:
    39
    Симпатии:
    4
    В том то и дело что нет ничего такого, подключается только jquery библиотека там.

    Вот исходник формы:
    PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <
    title>AWeber Communications</title>

    <
    link rel="stylesheet" type="text/css" href="/css/display_page.css" />

    <
    script type="text/javascript" src="https://cdn1.aweber-static.com/js/vendors/jquery/public_group.49974.js"></script>
    <script type="text/javascript">
    function stopReturnKey(evt) {
        var evt = (evt) ? evt : ((event) ? event : null);
        var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if ((evt.keyCode == 13) && (node.type=="text" || node.type=="password")) {
            return false;
        }
    }

    document.onkeypress = stopReturnKey;
    </script>
    </head>
    <body>
    <div class="container">
    <img src="https://cdn4.aweber-static.com/images/logo.gif" id="logo" alt="Email Marketing by AWeber"/>

    <form action="/1.0/oauth/authorize" method="POST" id="allow_access">
    <h1><strong>Deedgrabber</strong> by
       <strong>Deedgrabber</strong>
       wants to access and update your account.</h1>

       
        <div id="spinner" style="display: none;">Authenticating your account...</div>
        <table cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td class="left"><label for="username">Login Name:</label></td>
            <td><input name="oauth_username" type="text" value="" id="username"/></td>
        </tr>
        <tr>
            <td class="left"><label for="password">Password:</label></td>
            <td><input name="oauth_password" type="password" value="" id="password"/></td>
        </tr>
        <tr>
            <td class="left"></td>
            <td class="buttons-cell">
                <input type="submit" name="oauth_submit" id="deny" value="Deny" />
                or
                <input type="submit" name="oauth_submit" id="allow" value="Allow Access" />
            </tr>
        </table>
        <input type="hidden" name="oauth_token" value="AqIHi6KvYSgdvL3pp02wyrrP" />
        <input type="hidden" name="display" value="page" />
    </form>

    </div>
    <script type="text/javascript">
        $(function(){$('#allow').live('click',function(){$('table').hide();$('#spinner').show();});});
    </script>
    </body>
    </html>
    в фаирбаге куки только только те, которые уже поймал и включил я...

    В ответ получаю от сервера: 401 Unauthorized
     
  4. mcdir

    mcdir

    Регистр.:
    6 ноя 2007
    Сообщения:
    202
    Симпатии:
    37
    говорю же http://www.fiddler2.com/fiddler2/

    кстати коворя в fiddler2 можно писать сценарии - и повторять действия в браузере

    фаер баг может что то упустить
     
    Delayer нравится это.