Tip: Click lines to highlight, hold ctrl/cmd to multi-select
soundcloud.php debug (15-Jan @ 22:32)
Syntax Highlighted Code
- <?php
- /**
- * API Wrapper for SoundCloud written in PHP with support for authication using OAuth.
- *
- * @author Anton Lindqvist <anton@qvister.se>
- * @version 1.1
- * @link http://github.com/mptre/php-soundcloud/
- */
- // desbest edit. uncomment the lines below
- //if the api fails to generate a token
- //one line at a time. working DoWnWaRdS
- //echo "$consumer_key<br> $consumer_secret,<br> ";
- // echo "$oauth_token <br> $oauth_token_secret";
- //exit();
- //
- class Soundcloud {
- const VERSION = '1.1';
- const URL_API = 'http://api.soundcloud.com/';
- const URL_OAUTH = 'http://api.soundcloud.com/oauth/';
- function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
- $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret)or die ("could not make a consumer");
- $this->token = new OAuthConsumer($oauth_token, $oauth_token_secret);
- } else {
- echo "<span style=\"background-color: yellow;\">This yellow section is coming from soundcloud.php
- <br>A token could not be generated.
- <br>$oauth_token and $oauth_token_secret
- </span><hr>";
- $this->token = NULL;
- }
- }
- function get_authorize_url($token) {
- $token = $token['oauth_token'];
- }
- }
- function get_request_token($oauth_callback) {
- $request = $this->request(
- $this->_get_url('request'),
- 'POST',
- );
- $token = $this->_parse_response($request);
- $this->token = new OAuthConsumer(
- $token['oauth_token'],
- $token['oauth_token_secret']
- );
- return $token;
- }
- function get_access_token($token) {
- $response = $this->request(
- $this->_get_url('access'),
- 'POST',
- );
- $token = $this->_parse_response($response);
- $this->token = new OAuthConsumer(
- $token['oauth_token'],
- $token['oauth_token_secret']
- );
- return $token;
- }
- $url = self::URL_API . $resource;
- } else {
- $url = $resource;
- }
- $body = FALSE;
- $body = FALSE;
- } else {
- $body = TRUE;
- }
- $request = OAuthRequest::from_consumer_and_token(
- $this->consumer,
- $this->token,
- $method,
- $url,
- ($body === TRUE) ? $args : NULL
- );
- $request->sign_request($this->sha1_method, $this->consumer, $this->token);
- return $this->_curl(
- $request->get_normalized_http_url(),
- $request,
- $args,
- $headers
- );
- }
- private function _build_header($headers) {
- foreach ($headers as $key => $val) {
- $h[] = $key . ': ' . $val;
- }
- return $h;
- } else {
- return $headers;
- }
- }
- private function _curl($url, $request, $post_data = NULL, $headers = NULL) {
- $ch = curl_init();
- ? $headers['User-Agent']
- : 'PHP SoundCloud/' . self::VERSION;
- CURLOPT_URL => $url,
- CURLOPT_HEADER => FALSE,
- CURLOPT_RETURNTRANSFER => TRUE
- );
- $options[CURLOPT_CUSTOMREQUEST] = $request->get_normalized_http_method();
- $options[CURLOPT_POSTFIELDS] = '';
- }
- : $post_data;
- $options[CURLOPT_POST] = TRUE;
- }
- $headers[] = $request->to_header();
- $options[CURLOPT_HTTPHEADER] = $headers;
- curl_setopt_array($ch, $options);
- $response = curl_exec($ch);
- $this->http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- curl_close($ch);
- return $response;
- }
- private function _get_url($type) {
- switch ($type) {
- case 'access':
- $method = 'access_token';
- break;
- case 'authorize':
- $method = 'authorize';
- break;
- case 'request':
- $method = 'request_token';
- break;
- }
- return self::URL_OAUTH . $method;
- }
- private function _parse_response($response) {
- foreach ($response as $r) {
- }
- }
- }
- }
- }
Plain Code
<?php
/**
* API Wrapper for SoundCloud written in PHP with support for authication using OAuth.
*
* @author Anton Lindqvist <anton@qvister.se>
* @version 1.1
* @link http://github.com/mptre/php-soundcloud/
*/
// desbest edit. uncomment the lines below
//if the api fails to generate a token
//one line at a time. working DoWnWaRdS
//echo "$consumer_key<br> $consumer_secret,<br> ";
// echo "$oauth_token <br> $oauth_token_secret";
//exit();
//
class Soundcloud {
const VERSION = '1.1';
const URL_API = 'http://api.soundcloud.com/';
const URL_OAUTH = 'http://api.soundcloud.com/oauth/';
function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
$this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1() or die ("could not sha1 method");
$this->consumer = new OAuthConsumer($consumer_key, $consumer_secret)or die ("could not make a consumer");
if (!empty($oauth_token) && !empty($oauth_token_secret)) {
$this->token = new OAuthConsumer($oauth_token, $oauth_token_secret);
} else {
echo "<span style=\"background-color: yellow;\">This yellow section is coming from soundcloud.php
<br>A token could not be generated.
<br>$oauth_token and $oauth_token_secret
</span><hr>";
$this->token = NULL;
}
}
function get_authorize_url($token) {
if (is_array($token)) {
$token = $token['oauth_token'];
}
return $this->_get_url('authorize') . sprintf('?oauth_token=%s', $token);
}
function get_request_token($oauth_callback) {
$request = $this->request(
$this->_get_url('request'),
'POST',
array('oauth_callback' => $oauth_callback)
);
$token = $this->_parse_response($request);
$this->token = new OAuthConsumer(
$token['oauth_token'],
$token['oauth_token_secret']
);
return $token;
}
function get_access_token($token) {
$response = $this->request(
$this->_get_url('access'),
'POST',
array('oauth_verifier' => $token)
);
$token = $this->_parse_response($response);
$this->token = new OAuthConsumer(
$token['oauth_token'],
$token['oauth_token_secret']
);
return $token;
}
function request($resource, $method = 'GET', $args = array(), $headers = NULL) {
if (!preg_match('/http:\/\//', $resource)) {
$url = self::URL_API . $resource;
} else {
$url = $resource;
}
if (stristr($headers['Content-Type'], 'multipart/form-data')) {
$body = FALSE;
} elseif (stristr($headers['Content-Type'], 'application/xml')) {
$body = FALSE;
} else {
$body = TRUE;
}
$request = OAuthRequest::from_consumer_and_token(
$this->consumer,
$this->token,
$method,
$url,
($body === TRUE) ? $args : NULL
);
$request->sign_request($this->sha1_method, $this->consumer, $this->token);
return $this->_curl(
$request->get_normalized_http_url(),
$request,
$args,
$headers
);
}
private function _build_header($headers) {
$h = array();
if (count($headers) > 0) {
foreach ($headers as $key => $val) {
$h[] = $key . ': ' . $val;
}
return $h;
} else {
return $headers;
}
}
private function _curl($url, $request, $post_data = NULL, $headers = NULL) {
$ch = curl_init();
$mime = (stristr($headers['Content-Type'], 'multipart/form-data')) ? TRUE : FALSE;
$headers['User-Agent'] = (isset($headers['User-Agent']))
? $headers['User-Agent']
: 'PHP SoundCloud/' . self::VERSION;
$headers = (is_array($headers)) ? $this->_build_header($headers) : array();
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => FALSE,
CURLOPT_RETURNTRANSFER => TRUE
);
if (in_array($request->get_normalized_http_method(), array('DELETE', 'PUT'))) {
$options[CURLOPT_CUSTOMREQUEST] = $request->get_normalized_http_method();
$options[CURLOPT_POSTFIELDS] = '';
}
if (is_array($post_data) && count($post_data) > 0 || $mime === TRUE) {
$options[CURLOPT_POSTFIELDS] = (is_array($post_data) && count($post_data) == 1)
? ((isset($post_data[0])) ? $post_data[0] : $post_data)
: $post_data;
$options[CURLOPT_POST] = TRUE;
}
$headers[] = $request->to_header();
$options[CURLOPT_HTTPHEADER] = $headers;
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
$this->http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $response;
}
private function _get_url($type) {
switch ($type) {
case 'access':
$method = 'access_token';
break;
case 'authorize':
$method = 'authorize';
break;
case 'request':
$method = 'request_token';
break;
}
return self::URL_OAUTH . $method;
}
private function _parse_response($response) {
$return = array();
$response = explode('&', $response);
foreach ($response as $r) {
if (strstr($r, '=')) {
list($key, $val) = explode('=', $r);
if (!empty($key) && !empty($val)) {
$return[urldecode($key)] = urldecode($val);
}
}
}
return (count($return) > 0) ? $return : FALSE;
}
}