Не удается загрузить файл в API oboom.com - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь загрузить файл через API oboom.com (https://www.oboom.com/api/1/ul)

$ch2 = curl_init("http://upload.oboom.com/1/ul?token=My API Key&parent=1");
curl_setopt($ch2, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_POST, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
curl_setopt($ch2, CURLOPT_REFERER, '');
$arr = array('file' => new CURLFile ("test.txt"));
curl_setopt($ch2, CURLOPT_POSTFIELDS, $arr); 
$output = curl_exec($ch2);      
curl_close($ch2);
echo $output;

Я получаю: [404,"item",["1"]]

Пожалуйста, помогите мне исправить этот пример кода! Спасибо!

1 Ответ

0 голосов
/ 03 июля 2018

вам нужно получить параметр токена из ответа сеанса входа в систему,

сохраните этот файл для генерации хэша пароля: PasswordStorage.php

function login($email, $pass)
{
    $mysalt     = strrev($pass);
    $hash       = PasswordStorage::pbkdf2('sha1', $pass, $mysalt, 1000, 16);

    $ch2 = curl_init("https://www.oboom.com/1/login?auth=$email&pass=$hash");
    curl_setopt($ch2, CURLOPT_HEADER, 0);
    curl_setopt($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
    curl_setopt($ch2, CURLOPT_REFERER, '');
    $output = curl_exec($ch2);
    curl_close($ch2);
    return json_decode($output);
}

function upload($token, $file)
{
    $ch2 = curl_init("http://upload.oboom.com/1/ul?token=$token&parent=1");
    curl_setopt($ch2, CURLOPT_HEADER, 0);
    curl_setopt($ch2, CURLOPT_POST, true);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');
    curl_setopt($ch2, CURLOPT_REFERER, '');
    $arr = array('file' => new CURLFile ($file));
    curl_setopt($ch2, CURLOPT_POSTFIELDS, $arr); 
    $output = curl_exec($ch2);      
    curl_close($ch2);
    return json_decode($output);
}


$login  = login('youremail@email.com', 'yourPassword');
$token  = $login[1]->session;

$upload = upload($token, 'test.txt');
var_dump($upload);

для использования циклической загрузки вы можете сохранить токен как файл и прочитать токен, если он существует, чтобы избежать повторного входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...