Проблемы с публикацией твита с помощью php

#php #twitter

#php #Twitter

Вопрос:

Я использую этот код, чтобы получить последние 20 твитов, в которых я был упомянут. Но я не могу адаптировать его, чтобы иметь возможность отправлять простые текстовые твиты. кто-нибудь может мне помочь? Я перепробовал все, но застрял. Я не знаю, что делать… Я знаю, что мне нужно опубликовать /update.json и использовать update -> text, но он не работает

 function buildBaseString($baseURI, $method, $params) {
    $r = array();
    ksort($params);
    foreach($params as $key=>$value){
        $r[] = "$key=" . rawurlencode($value);
    }
    return $method."amp;" . rawurlencode($baseURI) . 'amp;' . rawurlencode(implode('amp;', $r));
}
function buildAuthorizationHeader($oauth) {
    $r = 'Authorization: OAuth ';
    $values = array();
    foreach($oauth as $key=>$value)
        $values[] = "$key="" . rawurlencode($value) . """;
    $r .= implode(', ', $values);
    return $r;
}
function returnTweet(){
    $oauth_access_token         = "xxxxxxxxxxxxxxxx";
    $oauth_access_token_secret  = "xxxxxxxxxxxxxxxx";
    $consumer_key               = "xxxxxxxxxxxxxxxx";
    $consumer_secret            = "xxxxxxxxxxxxxxxx";
    $timeline               = "mentions_timeline";  
    //  create request
        $requestrt = array(
            'screen_name'       => 'myScreenName', 
            'extended_entities' => 'true',
            'exclude_replies' => 'true',
            'include_rts' => 'false',
            'tweet_mode' => 'extended',
            'count'             => '20');
    $oauth = array(
        'oauth_consumer_key'        => $consumer_key,
        'oauth_nonce'               => time(),
        'oauth_signature_method'    => 'HMAC-SHA1',
        'oauth_token'               => $oauth_access_token,
        'oauth_timestamp'           => time(),
        'oauth_version'             => '1.0' 
    );
    //  merge request and oauth to one array
        $oauth = array_merge($oauth, $requestrt);
        $base_info = buildBaseString("https://api.twitter.com/1.1/statuses/$timeline.json", 'GET', $oauth);
        $composite_key = rawurlencode($consumer_secret) . 'amp;' . rawurlencode($oauth_access_token_secret);
        $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
        $oauth['oauth_signature'] = $oauth_signature;
    //  make request
        $header = array(buildAuthorizationHeader($oauth), 'Expect:');
        $options = array( CURLOPT_HTTPHEADER => $header,
                          CURLOPT_HEADER => false,
                          CURLOPT_URL => "https://api.twitter.com/1.1/statuses/$timeline.json?". http_build_query($requestrt),
                          CURLOPT_RETURNTRANSFER => true,
                          CURLOPT_SSL_VERIFYPEER => false);
        $feed = curl_init();
        curl_setopt_array($feed, $options);
        $json = curl_exec($feed);
        curl_close($feed);
    return json_decode($json, true); 
}
$tweet = returnTweet();
 

Комментарии:

1. Пожалуйста, объясните, что на самом деле означает «не работает». Где происходит сбой? Что происходит на самом деле? Сообщения об ошибках? Неправильный ответ? Выполняли ли вы какие-либо отладки, чтобы сузить проблему?

2. Можете ли вы привести примеры того, что вы пробовали, и каковы были результаты этих попыток

3. В чем ошибка, пожалуйста