10

セルフQ&Aです。

私は Vimeo API の使用に関するヘルプをよく探しましたが、初心者レベルの例やドキュメントは非常に理解しにくいものでした。それで、私はこの Q&A を、それを必要としている人の助けとして書きました。だからここに質問があります:

Vimeo PHP の「高度な API」を使用してすべての Vimeo ビデオを取得するにはどうすればよいですか?

鍵は「私の」動画です。これは、自分の Vimeo アカウントと同期したいサイトを構築している人に役立ちます。Vimeo の例はすべて、サードパーティのユーザーが必要に応じて認証できるようにすることを目的としています。これは、1 回限りの静的認証の例です。

4

2 に答える 2

6
// Include the Vimeo API file. Download from here: https://github.com/vimeo/vimeo-php-lib
require_once('vimeo.php');

/*
 * Helper Function to Handle Vimeo Authentication
 */ 
    function authenticate_vimeo(){
        // Settings below.
        // You'll need to set these to your account's as show here: // Get from https://developer.vimeo.com/apps/new

        $vimeo_id = 'user12345'; // Get from https://vimeo.com/settings, must be in the form of user123456
        $consumer_key = '1234567';
        $consumer_secret = '1234567';
        $token = '1234567';
        $token_secret = '1234567';

        // Do an authentication call        
        $vimeo = new phpVimeo($consumer_key, $consumer_secret);
        $vimeo->setToken($token, $token_secret);        
        $vimeo->user_id = $vimeo_id;

        return $vimeo;
    }   

/*
 * This is how you make a call to the Vimeo API
 */ 
    // Authenticate Vimeo
    $vimeo = authenticate_vimeo();

    // Try to access the API
    try {
        $args = array(
            'full_response' => true,
            'user_id'       => $vimeo->user_id, // This limits the request to the one user's videos
            'per_page'      => 50, // 50 is the max per page, use "page" parameter for more pages
        );
        $results = $vimeo->call('vimeo.videos.getUploaded', $args); // List of methods here: https://developer.vimeo.com/apis/advanced/methods
    }
    catch (VimeoAPIException $e) {
        $error = "Encountered an API error -- code {$e->getCode()} - {$e->getMessage()}";
    }

    // Do something with error or results
    if( isset($error) ) {
        print_r($error);
    } else {
        print_r($results); // This will be a gigantic PHP object of all videos and meta data
    }
于 2014-04-08T06:20:27.143 に答える
1

https://github.com/leandrocfe/PHPVimeoAPI_List_Private_Video にアクセスしてください

Vimeo の非公開動画を一覧表示 | プライベート動画にアクセスする

  1. config.json 情報 vimeo アカウントを変更します。
  2. video.php にアクセスし、vimeo_video_id get パラメータを追加します。例: localhost/vimeo/video.php?id=123123123

    <?php
    
    //utf-8
    header('Content-Type: text/html; charset=utf-8');
    
    //lib vimeo
    use Vimeo\Vimeo;
    
    //métodos de inicialização
    $config = require(__DIR__ . '/init.php');
    
    //vimeo video id
    @$id = $_GET["id"];
    
    //isset get
    if(isset($id)){
    
        // vimeo class send config.json paramns
        $lib = new Vimeo($config['client_id'], $config['client_secret'], $config['access_token']);
    
        //get data vimeo video
        $me = $lib->request("/me/videos/$id");
    
        //iframe vídeo
        $embed = $me["body"]["embed"]["html"];
    
        //edit video size
        $default_size = 'width="'.$me["body"]["width"].'" height="'.$me["body"]["height"].'"';
        $new_size = 'width="420" height="220"';
    
        $embed = str_replace($default_size, $new_size, $embed);
    
        //autoplay
        $embed = str_replace('player_id=0', 'player_id=0&autoplay=1', $embed);
    
    }else{
    
        echo("Not find get id video");
    }
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title>Vimeo Vídeo</title>
        </head>
        <body>
            <div><?php echo $embed ?></div>
            <div>
                <p><b>Name: </b><?php print_r($me["body"]["name"]); ?></p>
                <p><b>Description: </b><?php print_r($me["body"]["description"]); ?></p>
                <p><b>Link: </b><?php print_r($me["body"]["link"]); ?></p>
                <p><b>Likes: </b><?php print_r($me["body"]["embed"]["buttons"]["like"]); ?></p>
                <p><b>Data Created: </b><?php print_r($me["body"]["created_time"]); ?></p>
                <p><b>Data Modified: </b><?php print_r($me["body"]["modified_time"]); ?></p>
                <p><b>Images: </b>
                    <?php print_r($me["body"]["pictures"]["uri"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][0]["link"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][1]["link"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][2]["link"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][3]["link"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][4]["link"]); ?> |
                    <?php print_r($me["body"]["pictures"]["sizes"][5]["link"]); ?>
                    </p>
            </div>
            <div><?php //print_r($me); //use for show all options ?></div>
        </body>
    </html>
    
于 2016-01-08T14:22:51.763 に答える