Autore Topic: Pastebin API  (Letto 2761 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Pastebin API
« il: Martedý, 05 Gennaio 2016 16:19 »
Io ho questo codice:
Codice: [Seleziona]
$api_dev_key = 'CENSORED';
$api_paste_code = '<html><input type="text" size="25" value="" class="input_text" /></html> '; // your paste text
$api_paste_private = '0'; // 0=public 1=unlisted 2=private
$api_paste_name = 'Virtual Interactive Games Entertainment';
$api_paste_expire_date = 'N';
$api_paste_format = 'text';
$api_user_key = '';
$api_paste_name = urlencode($api_paste_name);
$api_paste_code = urlencode($api_paste_code);


$url = 'http://pastebin.com/api/api_post.php';
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);

$response  = curl_exec($ch);
echo $response;
Quello che vorrei che facesse:
-Riquadro bianco con input da inserire per l'utente;
-Tasto per inviare;
-Ritornare link con il paste :)

Quello che fa:
-Ritorna link immediatamente ad un paste vuoto -_-

Come faccio a fargli fare quello che voglio io? ;D
Grazie in anticipo :)

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #1 il: Martedý, 05 Gennaio 2016 20:48 »
Io con l'esempio di pastebin ottengo un paste valido, con il tuo ottengo:
Citazione
Your paste has triggered our automatic SPAM detection filter. This happens when certain keywords are detected in a paste. It can also happen if you are creating a lot of pastes in a short period of time.

Ed in effetti un pezzo di html a quel modo Ŕ comprensibile che faccia suonare gli allarmi di eventuali meccanismi anti-spam.

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #2 il: Martedý, 05 Gennaio 2016 21:19 »
Sý, ma mi hai praticamente ripetuto quello che giÓ sapevo ;_;

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #3 il: Martedý, 05 Gennaio 2016 21:46 »
Ma non quanto hai scritto.
Hai scritto:
Quello che fa:
-Ritorna link immediatamente ad un paste vuoto -_-
un paste vuoto ed un warning che il tuo paste Ŕ spam sono due cose mooooooolto diverse.
Se fosse vuoto potrebbe esserci un errore da qualche parte da indagare, se invece ritorna un warning di spam l'unica cosa che puoi fare Ŕ seguire le indicazioni che ti da il sito e creare un account "pro"... oppure postare qualcosa di non spammico. ;)

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #4 il: Martedý, 05 Gennaio 2016 21:57 »
Ma io voglio postare qualcosa di diverso, l'ho scritto accipicchia
Quello che vorrei che facesse:
-Riquadro bianco con input da inserire per l'utente;
-Tasto per inviare;
-Ritornare link con il paste :)
Non mi serve html, solo un riquadro per mettere la roba (dei logfiles).
Oltretutto triggera l'antispam perchŔ fa dei paste vuoti, che per ovvie ragioni vengono rifiutati, lol.

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #5 il: Martedý, 05 Gennaio 2016 23:29 »
Sigh.

Allora, quello che vuoi Ŕ:
1) costruire una pagina html con la form ed i box e quello che serve,
2) usare quello che viene postato da quella pagina per creare un paste.
Il codice che hai postato, perl, fa qualcosa di un po' diverso, ed ancora mi chiedo cosa il topic ci faccia nella sezione SMF 2.0.

Va beh.
Codice: [Seleziona]
<?php

if (!empty($_POST'paste']))
{
echo createPast($_POST'paste']);
}
else
{
createForm();
}

function 
createPaste($text)
{
$api_dev_key  'CENSORED';
$api_paste_code  $text// your paste text
$api_paste_private  '0'// 0=public 1=unlisted 2=private
$api_paste_name 'Virtual Interactive Games Entertainment';
$api_paste_expire_date  'N';
$api_paste_format  'text';
$api_user_key  '';
$api_paste_name urlencode($api_paste_name);
$api_paste_code urlencode($api_paste_code);


$url  'http://pastebin.com/api/api_post.php';
$ch  curl_init($url);

curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_POSTFIELDS'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.'');
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_VERBOSE1);
curl_setopt($chCURLOPT_NOBODY0);

return curl_exec($ch);
}

function 
createForm()
{
echo '<html>
<form action="">
<textarea name="paste"></textarea>
</form>
</html>;
}

Non testato minimamente.

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #6 il: Mercoledý, 06 Gennaio 2016 02:41 »
Nope :/ http://virtualinteractivege.com/index.php?page=page4110 Niente tasto nÚ riesco ad inviare.

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #7 il: Mercoledý, 06 Gennaio 2016 09:28 »
Beh, il tasto non ce l'ho messo. xD
Aggiungi un input type="button" dopo la textarea value="salva" (che sarÓ po il testo del pulsante).

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #8 il: Mercoledý, 06 Gennaio 2016 13:12 »
nÚ riesco ad inviare.
E l'ultima funzione pare rotta perchŔ si vedono caratteri extra :/

Codice: [Seleziona]
function createForm()
{
echo '<html>
<form action="">
<textarea name="paste"></textarea>
<input type="button" value="salva">
</form>;
</html>
}

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #9 il: Mercoledý, 06 Gennaio 2016 13:15 »
Codice: [Seleziona]
function createForm()
{
echo '<html>
<form action="">
<textarea name="paste"></textarea>
<input type="button" value="salva">
</form>;
</html>';
}
Interessante "side effect" dei blocchi di codice di SP.

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #10 il: Mercoledý, 06 Gennaio 2016 13:51 »
Nope, per il poco di conoscenza di php che ho, avevo giÓ provato quel codice, puoi vedere il risultato tu stesso :/

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #11 il: Mercoledý, 06 Gennaio 2016 14:12 »
Hai notato, vero, che il codice Ŕ diverso da quello che avevo postato prima?
Ad ogni modo, ora che hai in qualche modo spiegato che stai usando un blocco bbc, posso anche dirti che il tag html Ŕ inutile.

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #12 il: Mercoledý, 06 Gennaio 2016 14:16 »
Hai notato, vero, che il codice Ŕ diverso da quello che avevo postato prima?
Certo, intendevo proprio quel codice ;) L'ho ri-copiato e incollato per essere sicuro ma non Ŕ cambiato nulla, da quello che avevo giÓ provato ("chiudere" l'echo).

Ad ogni modo, ora che hai in qualche modo spiegato che stai usando un blocco bbc, posso anche dirti che il tag html Ŕ inutile.
Sto usando un blocco html come hai detto tu all'inizio qui
1) costruire una pagina html

Offline emanuele

  • Amministratore IS
  • *******
  • Post: 4968
    • Mostra profilo
    • ElkArte
  • Versione SMF: Altro
  • Versione ElkArte: 1.0.x
Re:Pastebin API
« Risposta #13 il: Mercoledý, 06 Gennaio 2016 14:32 »
Certo, intendevo proprio quel codice ;) L'ho ri-copiato e incollato per essere sicuro ma non Ŕ cambiato nulla, da quello che avevo giÓ provato ("chiudere" l'echo).
Guardando il codice HTML della pagina che hai linkato, direi che hai solo messo un ";" dopo form e non il "apice-punto-e-virgola" dopo html. Ma va beh, passiamo oltre.

Sto usando un blocco html come hai detto tu all'inizio qui
1) costruire una pagina html
Io ho detto una "pagina html" in generale, siccome tu non hai specificato dove volevi usarlo, per me una pagina html non Ŕ "una pagina HTML di SP", ma *una pagina HTML* e basta.

Comunque, filosofia a parte, il codice per un blocco/paginaSP php Ŕ:
Codice: [Seleziona]
if (!empty($_POST['paste']))
{
echo createPast($_POST['paste']);
}
else
{
createForm();
}

function createPaste($text)
{
$api_dev_key = 'CENSORED';
$api_paste_code = $text; // your paste text
$api_paste_private = '0'; // 0=public 1=unlisted 2=private
$api_paste_name = 'Virtual Interactive Games Entertainment';
$api_paste_expire_date = 'N';
$api_paste_format = 'text';
$api_user_key = '';
$api_paste_name = urlencode($api_paste_name);
$api_paste_code = urlencode($api_paste_code);


$url = 'http://pastebin.com/api/api_post.php';
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'api_option=paste&api_user_key='.$api_user_key.'&api_paste_private='.$api_paste_private.'&api_paste_name='.$api_paste_name.'&api_paste_expire_date='.$api_paste_expire_date.'&api_paste_format='.$api_paste_format.'&api_dev_key='.$api_dev_key.'&api_paste_code='.$api_paste_code.'');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_NOBODY, 0);

return curl_exec($ch);
}

function createForm()
{
echo '
<form action="">
<textarea name="paste"></textarea>
<input type="button" value="salva">
</form>';
}
Qua funziona (almeno la visualizzazione, per il "posting" vero e proprio ci sarebbe probabilmente da correggere la action del tag form con quello effettivo, ma forse non Ŕ strettamente necessario, prova. ;)

Offline Flavio93Zena

  • Staff IS
  • *******
  • Post: 3056
  • Sesso: Maschio
  • Sniper Legends
    • Mostra profilo
  • Versione SMF: 2.0.x
  • Versione ElkArte: -
Re:Pastebin API
« Risposta #14 il: Mercoledý, 06 Gennaio 2016 14:36 »
No, ti assicuro che il codice era *esattamente* come lo avevi scritto tu, e nemmeno io mi spiego perchŔ lo riconoscesse a metÓ ._.

Non funziona perchŔ non invia nulla quando premo salva XD