В моем приложении я хочу использовать Soundcloud API с моим собственным пользователем Soundcloud. Процесс аутентификации Soundcloud API включает перенаправление пользователя на домашнюю страницу Soundcloud, авторизацию и авторизацию приложения, чтобы страница могла использовать API для этого пользователя.
Я хочу автоматизировать весь процесс, потому что мой собственный пользователь является единственным пользователем, который получает аутентификацию. Это возможно?
Вот мой код:
$soundcloud = new \Services_Soundcloud( '**', '**', 'http://**' ); $authorizeUrl = $soundcloud->getAuthorizeUrl(); $accessToken = $soundcloud->accessToken(); try { $me = json_decode($soundcloud->get('me'), true); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
Но строка $accessToken = $soundcloud->accessToken();
выдает исключение:
The requested URL responded with HTTP code 401. 500 Internal Server Error - Services_Soundcloud_Invalid_Http_Response_Code_Exception
Я ищу то же самое, но в соответствии с api soundcloud (проверьте аутентификацию без параграфа экрана SoundCloud Connect ):
// this example is not supported by the PHP SDK
.. и не поддерживается Javascript.
Я попробовал auth с python:
# create client object with app and user credentials client = soundcloud.Client(client_id='YOUR_CLIENT_ID', client_secret='YOUR_CLIENT_SECRET', username='YOUR_USERNAME', password='YOUR_PASSWORD')
… затем загружающий метод python:
# upload audio file track = client.post('/tracks', track={ 'title': 'This is my sound', 'asset_data': open('file.mp3', 'rb') })
и все работает отлично.
Итак, на данный момент у вас есть 2 способа:
Всем привет,
Здесь я собираюсь поделиться своим опытом с Soundcloud API (PHP)
См. Мой вопрос: Ссылка
Recently I started to work with Sound cloud API (PHP) and I decided to use PHP API by https://github.com/mptre/php-soundcloud. But When I was trying to get access token from Sound cloud server by this code:
// Get access token try { $accessToken = $soundcloud->accessToken($_GET['code']); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
Я проверил значение $ _GET ['code']. Но странно, что в $ _GET ['code' нет ничего пустого. Soundcloud возвращал ошибку «Запрошенный URL-адрес с ошибкой HTTP-кода 0». В то время я тестировал Soundcloud на WAMP Localhost.
Allot of Goggling Я нашел решение исправить ошибку «Запрошенный URL-адрес с кодом HTTP 0». Я загрузил файл cacert.pem и помещал его в нашу папку с демонстрационным проектом (внутри службы / Soundcloud /). Затем после того, как я добавил код в класс services_Soundcloud,
function protected function _request($url, $curlOptions = array()). // My code in side function $curlPath = realpath(getcwd().'\Services\cacert.pem'); $curlSSLSertificate = str_replace("\\", DIRECTORY_SEPARATOR, $curlPath); curl_setopt($ch, CURLOPT_CAINFO, $curlSSLSertificate);
Сохраненный файл класса services_Soundcloud и переместился на живой сервер. После переноса моего проекта с WAMP на сервер Live я начну проверять его снова. Когда я открываю свой index.php, я прошу войти в систему
I use my Facebook account to login.
after login it was asking to connect with Soundcloud
после подключения все работает гладко, я получил мою информацию с
$me = json_decode($soundcloud->get('me'));
но возникает новая проблема, которая заключается в том, что мой токен доступа истекает снова и снова. Затем я использую сеанс: D
// code for access token $code = $_GET['code']; // Get access token try { if(!isset($_SESSION['token'])){ $accessToken = $soundcloud->accessToken($code); $_SESSION['token'] = $accessToken['access_token']; }else{ $soundcloud->setAccessToken($_SESSION['token']); } } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
И теперь все работает потрясающе. я могу получить все мои данные, отслеживать все с сервера SC
Надеюсь, это поможет вам бороться с Soundcloud API Cheers !!!! 🙂