Как подключить Yandex Disk для сайта?

Здравствуйте.
Есть необходимость кое какие файлы где то хранить. Решили для этого дела использовать яндекс диск
Зарегистрировал приложение на Яндекса, получил ID, Пароль, Callback URL
Скачал phar-архив, подключил
Все как здесь
https://github.com/nixsolutions/yandex-php-library
Делаю как в примере вот здесь
https://github.com/nixsolutions/yandex-php-library...
У меня проект на CodeIgniter, код такой
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
use Yandex\OAuth\OAuthClient;
use Yandex\Disk\DiskClient;
class Test extends CI_Controller {
    public function __construct(){
		parent::__construct();
    }
    public function index(){
        //$this->load->helper('yadisk');
        require_once 'phar://yandex-php-library_0.4.0.phar/vendor/autoload.php';
        $post=$this->input->post();
        if(!empty($post)){
            
           $file = array(
                            'name' => $_FILES['image']['name'],
                            'size' => $_FILES['image']['size'],
                            'path' => $_FILES['image']['tmp_name']
                        );
           //var_dump($_FILES); exit;
             $client = $client = new OAuthClient('Тут_мой_ID');
             $client->setAccessToken('тут_пароль?');
             $token=$client->getAccessToken();
            $diskClient = new DiskClient($token );
             $diskClient->setServiceScheme(DiskClient::HTTPS_SCHEME);
            header('Content-type: application/json');
            $result = $diskClient->diskSpaceInfo();
            $result['login'] = $diskClient->getLogin();
            echo json_encode($result);
            
        }else {
            echo "<form action='/test/' method='post' enctype='multipart/form-data'>
                <input type='file' name='image'/>
                <input type='submit' value='Ok' name='submit'/>    
            </form>";
        }
    }
}

Выкидывает 401 ошибку - унрегистеред
Подозреваю, что я куда то не туда передаю ID или пароль, но токен успешно генерируется
Что я делаю не так?
  • Вопрос задан
  • 5754 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Tanchik194
$client->setAccessToken('тут_пароль?');

Здась должен быть токен, который Вы получаете после авторизации, т.к. данный метод только для авторизированного пользователя.
Посмотрите этот пример.
Почитайте документацию тут
Ответ написан
$client = $client = new OAuthClient('Тут_мой_ID');
$client->setAccessToken('тут_пароль?');


неверно
пройдя по Вашим ссылкам вижу, что настройки храняться в https://github.com/nixsolutions/yandex-php-library...
Ответ написан
@AaAAxzz
Я думаю, что вам лучше попробовать воспользоваться другой библиотекой https://github.com/jack-theripper/Mackey когда токен получаете, ставите галочки у "Диск REST API" и дальше примерно так

$disk = new Mackey\Yandex\Disk('token');

var_dum($disk->getContents());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы