• 26-03-2023, 04:19:46
    #1
    Selamun Aleyküm dostlar.

    Bir veritabanında ki tweetleri çekip tweet olarak attırmak istiyorum.

    tweet attırıyorum ama videoları yüklettiremiyorum.

    ücretli olatak 80-100 satırlık bu kodu yazırmak istiyorum. Ücreti mukabilinde yardımcı olacak var mı?

    veritabanında atılıcak tweetler ve yüklenecek mp4 dosyalarının konumu bulunmakta.

    Aşağıda ki kodu revize edebilir misiniz? ücreti mukabilinde.

    
    <?php
    require_once('twitter-api-php/TwitterAPIExchange.php');
    
    $settings = array(
        'oauth_access_token' => "xxxxxxxxxx",
        'oauth_access_token_secret' => "xxxxxxxxxxxxx",
        'consumer_key' => "xxxxxxxxxxxxxxx",
        'consumer_secret' => "xxxxxxxxxxxxx"
    );
    
    $url = "https://upload.twitter.com/1.1/media/upload.json";
    $requestMethod = "POST";
    
    // Dosya adı ve yolunu belirleyin
    $media_path = "indir/P8Q1IkP-OqeIwsss.mp4";
    
    // Medya yükleme isteğini oluşturun
    $media_upload = new TwitterAPIExchange($settings);
    $media_upload->buildOauth($url, $requestMethod)
                 ->setPostfields([
                    'media_data' => base64_encode(file_get_contents($media_path))
                 ])
                 ->performRequest();
    
    // Medya yükleme yanıtını alın
    $media_upload_response = json_decode($media_upload->getResponse());
    
    // Medya yükleme işlemi başarılı olduysa, medya ID'sini alın
    if (!empty($media_upload_response)) {
        $media_id = $media_upload_response->media_id_string;
    }
    
    // Tweet gönderme isteğini oluşturun
    $status = "Bu bir test tweetidir.";
    $url = "https://api.twitter.com/1.1/statuses/update.json";
    $requestMethod = "POST";
    
    // Tweet gönderme isteğini oluşturun
    $tweet = new TwitterAPIExchange($settings);
    $tweet->buildOauth($url, $requestMethod)
          ->setPostfields([
             'status' => $status,
             'media_ids' => $media_id // Eğer medya yüklemesi başarılı olduysa, bu alanı ekleyin
          ])
          ->performRequest();
    
    // Tweet gönderme işlemi yanıtını alın
    $tweet_response = json_decode($tweet->getResponse());
    
    // Tweet gönderildi mi diye kontrol edin
    if (!empty($tweet_response->id_str)) {
        $tweet_id = $tweet_response->id_str;
        echo "Tweet gönderildi: https://twitter.com/user/status/{$tweet_id}";
    } else {
        echo "Tweet gönderilemedi: {$tweet_response->errors[0]->message}";
    }
    ?>
  • 26-03-2023, 04:47:09
    #2
    Bunu deneyebilirsiniz işinize yararsa özelden iletişime geçip gönlünüzden kopan bir miktar yollayabilirsiniz 😁

    <?php

    require_once('twitter-api-php/TwitterAPIExchange.php');

    // API Anahtarları
    $settings = array(
    'oauth_access_token' => "xxxxxxxxxx",
    'oauth_access_token_secret' => "xxxxxxxxxxxxx",
    'consumer_key' => "xxxxxxxxxxxxxxx",
    'consumer_secret' => "xxxxxxxxxxxxx"
    );

    // Veritabanına bağlanın
    $dbhost = "localhost";
    $dbuser = "kullanici_adi";
    $dbpass = "sifre";
    $dbname = "veritabani_adi";

    $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
    if ($conn->connect_error) {
    die("Veritabanına bağlanırken hata oluştu: " . $conn->connect_error);
    }

    // Tweetleri veritabanından çekin
    $sql = "SELECT * FROM tweetler";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    // Tweet metnini alın
    $status = $row["tweet_metni"];

    // Medya dosyasının yolunu alın
    $media_path = $row["medya_yolu"];

    // Medya yükleme isteğini oluşturun
    $url = "https://upload.twitter.com/1.1/media/upload.json";
    $requestMethod = "POST";
    $media_upload = new TwitterAPIExchange($settings);
    $media_upload->buildOauth($url, $requestMethod)
    ->setPostfields([
    'media_data' => base64_encode(file_get_contents($media_path))
    ])
    ->performRequest();

    // Medya yükleme yanıtını alın
    $media_upload_response = json_decode($media_upload->getResponse());

    // Medya yükleme işlemi başarılı olduysa, medya ID'sini alın
    if (!empty($media_upload_response)) {
    $media_id = $media_upload_response->media_id_string;

    // Tweet gönderme isteğini oluşturun
    $url = "https://api.twitter.com/1.1/statuses/update.json";
    $requestMethod = "POST";
    $tweet = new TwitterAPIExchange($settings);
    $tweet->buildOauth($url, $requestMethod)
    ->setPostfields([
    'status' => $status,
    'media_ids' => $media_id
    ])
    ->performRequest();

    // Tweet gönderme işlemi yanıtını alın
    $tweet_response = json_decode($tweet->getResponse());

    // Tweet gönderildi mi diye kontrol edin
    if (!empty($tweet_response->id_str)) {
    $tweet_id = $tweet_response->id_str;
    echo "Tweet gönderildi: https://twitter.com/user/status/{$tweet_id}";
    } else {
    echo "Tweet gönderilemedi: {$tweet_response->errors[0]->message}";
    }
    } else {
    echo "Medya yüklenemedi: {$media_upload->getErrorMessage()}";
    }
    }
    } else {
    echo "Veritabanında
    tweet bulunamadı.";
    }

    // Veritabanı bağlantısını kapatın
    $conn->close();

    ?>