твиттер api tmhOAuth не работает oauth / access_token - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь разработать приложение для Twitter, используя php и tmhOAuth

Я использую этот код для получения токена доступа. Этот код работает на моем тестовом сервере, но не на рабочем сервере. Конфигурация php двух серверов практически одинакова.

if(isset($_REQUEST['oauth_verifier'])) {
  $tmhOAuth->config['user_token']  = $_SESSION['oauth']['oauth_token'];
  $tmhOAuth->config['user_secret'] = $_SESSION['oauth']['oauth_token_secret'];

  $code = $tmhOAuth->request('POST', $tmhOAuth->url('oauth/access_token', ''), array(
    'oauth_verifier' => $_REQUEST['oauth_verifier']
  ));

  if ($code == 200) {
    $_SESSION['access_token'] = $tmhOAuth->extract_params($tmhOAuth->response['response']);
    unset($_SESSION['oauth']);
    header("Location: {$here}");
  } else {
    outputError($tmhOAuth);
  }

}

Я получаю пустой ответ из твиттера [response] =>.

По крайней мере, я должен получить сообщение об ошибке. Пожалуйста, кто-нибудь может сказать мне, что не так?

tmhOAuth Object
(
    [params] => Array
        (
        )

    [headers] => Array
        (
            [Authorization] => OAuth oauth_consumer_key="htxmSKEwkd5jPB6z1bQI6Q", oauth_nonce="adb19fb2bc5f76060b63bcbb1b3e2b94", oauth_signature="E5Vb62A00L8Nj8uyt9MRKdFk6ck%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1329438683", oauth_token="g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA", oauth_verifier="vOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo", oauth_version="1.0"
            [Content-Type] => 
            [Content-Length] => 
            [Expect] => 
        )

    [auto_fixed_time] => 
    [buffer] => 
    [config] => Array
        (
            [user_agent] => tmhOAuth 0.61+SSL - //github.com/themattharris/tmhOAuth
            [use_ssl] => 1
            [host] => api.twitter.com
            [consumer_key] => htxmSKEwkd5jPB6z1bQI6Q
            [consumer_secret] => fmNsDdu809uAARz0EslIL5Tj9m3XxLuaTVg6RSVnAQ
            [user_token] => g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA
            [user_secret] => 4K8chxSWwwQ5nk1HSQrrbNW23FIGWiNLMycoqqxUV0
            [force_nonce] => 
            [nonce] => adb19fb2bc5f76060b63bcbb1b3e2b94
            [force_timestamp] => 
            [timestamp] => 1329438683
            [oauth_version] => 1.0
            [oauth_signature_method] => HMAC-SHA1
            [curl_connecttimeout] => 30
            [curl_timeout] => 10
            [curl_ssl_verifyhost] => 2
            [curl_ssl_verifypeer] => 1
            [curl_cainfo] => /home/content/00/6684400/html/html-tweetcomments/to/cacert.pem
            [curl_capath] => /home/content/00/6684400/html/html-tweetcomments/to
            [curl_followlocation] => 
            [curl_proxy] => 
            [curl_proxyuserpwd] => 
            [curl_encoding] => 
            [is_streaming] => 
            [streaming_eol] => 

            [streaming_metrics_interval] => 60
            [as_header] => 1
            [debug] => 
            [multipart] => 
        )

    [method] => POST
    [url] => https://api.twitter.com/oauth/access_token
    [signing_params] => oauth_consumer_key=htxmSKEwkd5jPB6z1bQI6Q&oauth_nonce=adb19fb2bc5f76060b63bcbb1b3e2b94&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1329438683&oauth_token=g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA&oauth_verifier=vOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo&oauth_version=1.0
    [auth_params] => Array
        (
            [oauth_consumer_key] => htxmSKEwkd5jPB6z1bQI6Q
            [oauth_nonce] => adb19fb2bc5f76060b63bcbb1b3e2b94
            [oauth_signature] => E5Vb62A00L8Nj8uyt9MRKdFk6ck%3D
            [oauth_signature_method] => HMAC-SHA1
            [oauth_timestamp] => 1329438683
            [oauth_token] => g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA
            [oauth_verifier] => vOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo
            [oauth_version] => 1.0
        )

    [request_params] => Array
        (
        )

    [base_string] => POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&oauth_consumer_key%3DhtxmSKEwkd5jPB6z1bQI6Q%26oauth_nonce%3Dadb19fb2bc5f76060b63bcbb1b3e2b94%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1329438683%26oauth_token%3Dg3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA%26oauth_verifier%3DvOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo%26oauth_version%3D1.0
    [signing_key] => fmNsDdu809uAARz0EslIL5Tj9m3XxLuaTVg6RSVnAQ&4K8chxSWwwQ5nk1HSQrrbNW23FIGWiNLMycoqqxUV0
    [auth_header] => OAuth oauth_consumer_key="htxmSKEwkd5jPB6z1bQI6Q", oauth_nonce="adb19fb2bc5f76060b63bcbb1b3e2b94", oauth_signature="E5Vb62A00L8Nj8uyt9MRKdFk6ck%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1329438683", oauth_token="g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA", oauth_verifier="vOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo", oauth_version="1.0"
    [response] => Array
        (
            [headers] => Array
                (
                    [date] => Fri, 17 Feb 2012 00:31:23 GMT
                    [status] => 401 Unauthorized
                    [x_mid] => 1195d712f355657dc7944ba32517310a873d29e1
                    [x_revision] => DEV
                    [x_runtime] => 0.01222
                    [x_transaction] => c84c1b7c659ad830
                    [cache_control] => no-cache, no-store, must-revalidate, pre-check=0, post-check=0
                    [x_frame_options] => SAMEORIGIN
                    [expires] => Tue, 31 Mar 1981 05:00:00 GMT
                    [content_type] => text/html; charset=utf-8
                    [last_modified] => Fri, 17 Feb 2012 00:31:23 GMT
                    [pragma] => no-cache
                    [set_cookie] => _twitter_sess=BAh7CDoPY3JlYXRlZF9hdGwrCN1yuIg1ASIKZmxhc2hJQzonQWN0aW9uQ29u%250AdHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoHaWQiJWEz%250AMDBiNmY2YmVhODIxZjVlOGMzZjRiODYyMTMzOWRh--d554d0fb6e5d23c9c9a8a10bd72c968c5872ff88; domain=.twitter.com; path=/; HttpOnly
                    [vary] => Accept-Encoding
                    [content_encoding] => gzip
                    [content_length] => 21
                    [server] => tfe
                )

            [code] => 401
            [response] =>  
            [info] => Array
                (
                    [url] => https://api.twitter.com/oauth/access_token
                    [content_type] => text/html; charset=utf-8
                    [http_code] => 401
                    [header_size] => 1047
                    [request_size] => 541
                    [filetime] => -1
                    [ssl_verify_result] => 0
                    [redirect_count] => 0
                    [total_time] => 0.52167
                    [namelookup_time] => 3.3E-5
                    [connect_time] => 0.119133
                    [pretransfer_time] => 0.380061
                    [size_upload] => 0
                    [size_download] => 21
                    [speed_download] => 40
                    [speed_upload] => 0
                    [download_content_length] => 21
                    [upload_content_length] => -1
                    [starttransfer_time] => 0.521456
                    [redirect_time] => 0
                    [request_header] => POST /oauth/access_token HTTP/1.1
User-Agent: tmhOAuth 0.61+SSL - //github.com/themattharris/tmhOAuth
Host: api.twitter.com
Accept: */*
Accept-Encoding: deflate, gzip
Authorization: OAuth oauth_consumer_key="htxmSKEwkd5jPB6z1bQI6Q", oauth_nonce="adb19fb2bc5f76060b63bcbb1b3e2b94", oauth_signature="E5Vb62A00L8Nj8uyt9MRKdFk6ck%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1329438683", oauth_token="g3ekXAg9SwoYIge2l1E6JGwIQ02QYiha8uz5TMVA", oauth_verifier="vOrM6QWwGRpTEWgE2Kk2Y87DL1mlx324r4wh2SsUo", oauth_version="1.0"


                )

            [error] => 
            [errno] => 0
        )

)

Ответы [ 3 ]

2 голосов
/ 14 августа 2012

Я столкнулся с той же ситуацией - бился головой об стену - и, наконец, наконец нашел ответ!В то время как я получаю ту же ошибку tmhOAuth, что и вы с кодом 401, в моем журнале ошибок указано Undefined variable _SESSION.Из этого SO вопроса я нашел все, что вам нужно, это session_start().Проверьте все ваши включаемые и требуемые файлы и реальный скрипт (даже в условиях if / else) и посмотрите, не уничтожили ли вы сеанс или просто не начали его.

Надеюсь, это поможет!

1 голос
/ 26 ноября 2012

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

  1. Вы можете подтвердить это с помощью скрипта проверки скручиваемости, предоставленного Twitter API.
  2. Пожалуйста, проверьте часовой пояс вашего сервера.https://dev.twitter.com/discussions/8147 может помочь.

Надеюсь, это поможет.

0 голосов
/ 11 июня 2012

Я не уверен, но, по крайней мере, я вижу, что вы действительно получаете сообщение об ошибке 401 Unauthorized. Это в вашем ответе там. У меня та же проблема, также использую tmhOAuth. Для дальнейшего использования я предлагаю для начала всегда проверять содержимое $_SESSION, поскольку именно там tmh хранит var с - так что если вы на один или два шага на пути к успешный вход, там будет будет информация в $_SESSION.

Если кто-то еще знает об этом - пожалуйста, я все еще застрял!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...