Soundcloud API, PHP, ve OAuth

1 Cevap php

I'm building a site, and I need to query my last two tracks from my soundcloud account and display them on my page. I've read the Soundcloud API documentation but it seems obscure and far from my reach. I've installed the PHP library for using the API and Oauth, and set up my SoundCloud application to get my Consumer Keys, but I can't start the OAuth session.

Ben bu library kullanıyorum.

Ben Soundcloud hesabımdan son 2 parça almak gerekir. $ Consumer_key, $ consumer_secret, $ callback_url, $ tmp_path: Ben kitaplığından dosya (soundcloud.php ve oauth.php) gerektiren sonra dört parametrelerini ayarlamak gerekir.

Zaten benim anahtarları ve benim yazılabilir önbellek klasörü vardır. Ben geri url ne olduğunu bilmiyorum. Buna ek olarak, ben herhangi bir çalışma örneği kod bulamıyorum söylemek gerekir, bu yüzden bile bir şey yazmaya başlayabilirsiniz olamaz. Yani engellendi!

Başka bir pencere yürütmesini olmadan OAuth sürecini otomatik hale için herhangi bir yolu var mı, bu yüzden benim OAuth Jetonu benim PHP komut dosyası istenir?.

I was wondering if maybe you could hand me some sample code for doing this. That would be great!!

1 Cevap

This may be useful to you. After logging in, it embeds my favourite tracks into the page. You could change $favs to loads your own songs instead of your favourites instead.

Ayrıca benim config.php benim consumer_key, consumer_secret ve benim callback_url içerir unutmayın.

$callback_url = 'http://localhost/soundcloud';

Bunu sizin php script yeri eşit istiyorum.

<?php
  require_once ('php-soundcloud/mptre-php-soundcloud-644bb0e/oauth.php');
  require_once ('php-soundcloud/mptre-php-soundcloud-644bb0e/soundcloud.php');
  require_once ('config.php');

session_start();

// Clear the session i.e delete all stored tokens.
if (isset($_GET['logout'])) {
    session_destroy();
}

// Variables used for verifying the status of the "OAuth dance".
$oauth_token = (isset($_GET['oauth_verifier']))
    ? $_GET['oauth_verifier']
    : ((isset($_SESSION['oauth_access_token'])) ? $_SESSION['oauth_access_token'] : NULL);
$oauth_request_token = (isset($_SESSION['oauth_request_token']))
    ? $_SESSION['oauth_request_token']
    : NULL;
$oauth_request_token_secret = (isset($_SESSION['oauth_request_token_secret']))
    ? $_SESSION['oauth_request_token_secret']
    : NULL;

if (isset($oauth_token) && isset($oauth_request_token) && isset($oauth_request_token_secret)) {
    // Retreive access tokens if missing.
    if (!isset($_SESSION['oauth_access_token']) && !isset($_SESSION['oauth_access_token_secret'])) {
        $soundcloud = new Soundcloud(
            $consumer_key,
            $consumer_secret,
            $_SESSION['oauth_request_token'],
            $_SESSION['oauth_request_token_secret']
        );
        $token = $soundcloud->get_access_token($oauth_token);
        $_SESSION['oauth_access_token'] = $token['oauth_token'];
        $_SESSION['oauth_access_token_secret'] = $token['oauth_token_secret'];
    }

    // Construct a fully authicated connection with SoundCloud.
    $soundcloud = new Soundcloud(
        $consumer_key,
        $consumer_secret,
        $_SESSION['oauth_access_token'],
        $_SESSION['oauth_access_token_secret']
    );

    // Get basic info about the authicated visitor.
    $me = $soundcloud->request('me');
    $me = new SimpleXMLElement($me);
    $me = get_object_vars($me);

    // Get some embedding code for favs
    $favs = $soundcloud->request('http://api.soundcloud.com/users/'.$me['id'].'/favorites/');
    $favs = new SimpleXMLElement($favs);

} else {
    // This is the first step in the "OAuth dance" where we ask the visitior to authicate himself.
    $soundcloud = new Soundcloud($consumer_key, $consumer_secret);
    $token = $soundcloud->get_request_token($callback_url);

    $_SESSION['oauth_request_token'] = $token['oauth_token'];
    $_SESSION['oauth_request_token_secret'] = $token['oauth_token_secret'];

    $login = $soundcloud->get_authorize_url($token['oauth_token']);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>SoundCloud PHP API Wrapper</title>
    <meta name="author" content="Anton Lindqvist" />
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.7.0/build/reset/reset-min.css" />
    <link rel="stylesheet" type="text/css" href="assets/css/style.css" />
</head>
<body>
    <div id="wrapper">
        <div id="content">
            <?php if (isset($me)): ?>
                <a class="logout" href="?logout=true">logout</a>
            <?php endif; ?>
            <div id="header">
                <h1>SoundCloud PHP API Wrapper</h1>
            </div>
            <?php if (isset($login)): ?>
            <h2>What is this?</h2>
            <p>This is a basic demo</p>
            <h2>How to start?</h2>
            <p><a class="button" href="<?php echo $login; ?>">login with your SoundCloud account</a></p>
            <?php elseif (isset($me)): ?>
                <div id="profile">
                  <h2>
                    <a href="<?php echo $me['permalink-url']; ?>"><?php echo $me['permalink']; ?></a>
                  </h2>
                </div>
                <div class="clear"></div>

                <div id="favs">
                <?php
                  if (isset($favs)){

                    foreach($favs->track as $fav){
                        $permalink_url = $fav->{'permalink-url'};
                        $permalink_url = urlencode($permalink_url);

                        $f = simplexml_load_file('http://soundcloud.com/oembed?url='.$permalink_url);
                        echo $f->html;
                    }

                  } else {
                     echo "fail";
                  }
                ?>
                </div>
            <?php endif; ?>
        </div>
    </div>
</body>
</html>

Ayrıca bu yüzden benim yeteneklerini an için bu geçmiş germek değil ... ilk defa bu API kullanarak, ben bir php çaylak olduğumu unutmayın. Bu çoğu kullandığınız php sarıcı kütüphane ile birlikte geliyor demo "ödünç".

Olsa umut olur :)

ps. Başka pencere yürütmesini olmadan OAuth sürecini otomatik hale için bir yol olup olmadığından emin değil.