Get Mystery Box with random crypto!

Imparando il Piaccapi

Logo del canale telegramma piaccapi - Imparando il Piaccapi I
Logo del canale telegramma piaccapi - Imparando il Piaccapi
Indirizzo del canale: @piaccapi
Categorie: Tecnologie
Lingua: Italiano
Abbonati: 157
Descrizione dal canale

Canale dedicato al PHP.

Ratings & Reviews

2.00

2 reviews

Reviews can be left only by registered users. All reviews are moderated by admins.

5 stars

0

4 stars

0

3 stars

1

2 stars

0

1 stars

1


Gli ultimi messaggi

2018-07-24 12:00:13 ⁣#Serie1 #Parte2
Web Scraping

Poichè il web scraping basa principalmente il proprio lavoro sui contenuti di una qualsiasi pagina .html, ottenibili tramite l'Hypertext Transfer Protocol (protocollo HTTP), è bene possedere fin da subito una funzione in grado di "scaricare" una pagina web. Un'alternativa al classico file_get_contents, insomma, che, c'è da dirlo, restituisce il medesimo risultato.
Tale funzione sarà chiamata in questa serie curl(). Di seguito la sua definizione.

function curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

La funzione sarà poi utilizzata come di seguito:

$scraped_website = curl("http://www.example.com");

Sappiamo ora come ottenere il contenuto di una pagina web. Nella prossima parte impareremo come gestirlo.
952 views09:00
Aprire / Come
2018-07-23 16:28:42 Imparando il Piaccapi pinned «⁣ Cerchi canali utili, o magari che trattino di argomenti interessanti e di cultura generale? Ecco una lista di canali telegram di cui non puoi certamente fare a meno!»
13:28
Aprire / Come
2018-07-23 16:28:42 ⁣ Cerchi canali utili, o magari che trattino di argomenti interessanti e di cultura generale? Ecco una lista di canali telegram di cui non puoi certamente fare a meno!
710 views13:28
Aprire / Come
2018-07-22 18:25:58 ⁣#Serie1 #parte1
Web Scraping

Questa tecnica è illegale?
La pratica del web scraping non è di per sé illegale, in realtà essa varca la soglia dell’ illegalità quando viene impiegata per finalità illecite e quando i dati estrapolati vengono utilizzati per altri usi (pubblicazione, scopi di lucro, finalità di controllo, raccolta e trattamento dati personali, sensibili, finanziari, ecc) all’insaputa e senza il consenso del titolare del sito e/o del titolare dei contenuti e delle informazioni presenti su di esso.

Quali violazioni può configurare il web scraping?
L’utilizzo di questi strumenti, a volte, vìola i diritti dei titolari dei siti web per trarre profitto dal contenuto che essi forniscono, raccogliendo e utilizzando tali contenuti per altri scopi (siano essi dannosi, vantaggiosi o irrilevanti per il proprietario del sito). Il web scraping può configurare diverse violazioni, come la violazione del diritto d’autore, di diritti di proprietà industriale, violazioni sulla privacy, violazioni di condizioni contrattuali (ad esempio, i termini d’uso del sito), appropriazione indebita e, in certi casi, anche il reato di accesso abusivo ad un sistema informatico o sito web.

Il web scraping contribuisce al diffondersi delle informazioni personali?
Con l’avvento dell’economia basata sul traffico dei “dati” questa pratica si sta diffondendo maggiormente e le informazioni così raccolte vengono impiegate per identificare tendenze, comprendere stili di vita, effettuare indagini statistiche sull’uso di prodotti/servizi e sui nuovi bisogni degli utenti. Al di là delle violazioni commesse a danno dei titolari dei siti che si vedono defraudati del loro contenuto o di questioni che attengono più ad atti di concorrenza sleale, quando queste pratiche vengono impiegate per raccogliere e ripubblicare in rete dati personali di utenti ignari, che hanno consegnati le proprie informazioni ad altri siti, la questione diventa più delicata e si entra nell’ambito della violazione di diritti fondamentali, quali quello alla riservatezza.

Detto ciò, non ci assumiamo alcuna responsabilità dell’utilizzo che farete dei nostri post, ne’ dei danni diretti e indiretti da esso causato.
662 views15:25
Aprire / Come
2018-07-22 15:46:54 ⁣#Serie1 #Parte0
Web Scraping

Il web scraping è una tecnica informatica di estrazione di dati da un sito web per mezzo di programmi software.

Nell'ultimo periodo ho avuto modo di lavorare utilizzando la tecnica del web scraping. Nonostante avessi già sentito parlarne, non avevo mai avuto l'occasione di utilizzarlo ed approfondirlo prima di allora. Ho potuto così scoprire quanto questa tecnica sia utile in numerosissimi contesti, come l'ottenimento di notizie in tempo reale o della lista dei programmi tv della serata (Con il quale ho creato @Palinsesto). Ho così deciso di avviare questa serie per condividere con voi come, quando, perchè utilizzare il web scraping e alcuni trucchetti che potrebbero tornarvi comodi.
545 views12:46
Aprire / Come
2018-05-02 18:08:40Come salvare file telegram sul proprio server tramite PHP

Potrebbe capitare, per svariati motivi, di avere la necessità di salvare sul proprio server i file che il bot riceve su telegram. Questo risulta utile, ad esempio, quando il servizio offerto mira alla conversione dei files, al loro ridimensionamento o alla loro modifica.

1. GetFile
Per prima cosa bisogna sapere che telegram mette a disposizione degli sviluppatori il metodo GetFile. Questo richiede essenzialmente un solo parametro, ovvero l'id del file che si desidera salvare e restituisce un path (percorso) temporaneo al file, salvato sui server telegram.

2. Salvataggio
Ottenuto il path diretto al file, inizia la vera e propria fase di salvataggio. Consiglio di utilizzare le classiche funzioni fopen(), fwrite() e fclose() per copiare il file e "clonarlo" nella cartella che si desidera. Qui sotto un esempio illustrato.

$linkAlFile="https://api.telegram.org/file/bot$TOKENBOT/$filePath";

$FileRemoto=fopen($link, "r");

$fileCopiaPath=fopen("FOTO/NOMEFILE.jpg", "w");

while($contents=fread($FileRemoto, 8192)){

fwrite($fileCopiaPath, $contents, strlen($contents));

}

fclose($FileRemoto);
fclose($fileCopiaPath);

$filePath rappresenta il percorso diretto al file, ottenuto in precedenza con GetFile.
$fileCopiaPath rappresenta la cartella entro cui il file sarà salvato.

La guida ti è stata utile? Faccelo sapere!
1.3K viewsedited  15:08
Aprire / Come
2018-01-12 19:25:41 #method #sendVideo
Utilizza questo metodo per inviare video.

function sendVideo($chat_id, $video, $caption, $inline_keyboard, $duration, $width, $height, $disable_notification=false, $reply_to_message_id=false){
global $api;
$fields=["chat_id"=>$chat_id, "video"=>$video, "caption"=>$caption, "duration"=>$duration, "width"=>$width, "height"=>$height, "disable_notification"=>$disable_notification, "reply_to_message_id"=>$reply_to_message_id];
if($inline_keyboard) {
$reply_markup=["inline_keyboard"=>$inline_keyboard];
$fields['reply_markup']=json_encode($reply_markup);
}
$result=run("sendVideo", $fields, false);
return $result;
}

Parametri principali
string $video: id o url del video da inviare,
string $caption: didascalia (Optional).

Esempio
if($messaggio=="/video"){
$inline_keyboard[]=[["text"=>"Tastiera", "callback_data"=>"1"]];
sendVideo($idChat, "VIDEO_ID", "", $inline_keyboard);
}

La risposta del bot sarà quella mostrata nella foto qui sotto. ‌‌‎
1.4K views16:25
Aprire / Come
2018-01-09 20:05:08 #method #SendDocument
Utilizza questo metodo per inviare file generici. (Max 50mb)


function sendDocument($chat_id, $document, $caption, $inline_keyboard, $disable_notification=false, $reply_to_message_id=false){
global $api;
$fields=["chat_id"=>$chat_id, "document"=>$document, "caption"=>$caption, "disable_notification"=>$disable_notification, "reply_to_message_id"=>$reply_to_message_id];
if($inline_keyboard) {
$reply_markup=["inline_keyboard"=>$inline_keyboard];
$fields['reply_markup']=json_encode($reply_markup);
}
$result=run("sendDocument", $fields, false);
return $result;
}

Parametri
string $document: file da inviare;
string $caption: didascalia.

Esempio

if($messaggio=="/document"){
$inline_keyboard[]=[["text"=>"Tastiera", "callback_data"=>1]];
sendDocument($idChat, "BQADBAADMgIAAp_KqFIzfTQiShZAlAI", "Didascalia", $inline_keyboard);
}
853 views17:05
Aprire / Come
2018-01-05 17:35:46 #method #sendAudio
Utilizza questo metodo per inviare file audio in formato .mp3.

function sendAudio($chat_id, $audio, $caption, $inline_keyboard, $duration, $performer, $title, $disable_notification=false, $reply_to_message_id=false){
global $api;
$fields=["chat_id"=>$chat_id, "audio"=>$audio, "caption"=>$caption, "disable_notification"=>$disable_notification, "reply_to_message_id"=>$reply_to_message_id];
if($inline_keyboard) {
$reply_markup=["inline_keyboard"=>$inline_keyboard];
$fields['reply_markup']=json_encode($reply_markup);
}
if($caption) $fields['caption']=$caption;
if($duration) $fields['duration']=$duration;
if($performer) $fields['performer']=$peformer;
if($title) $fields['title']=$title;
$result=run("sendAudio", $fields, false);
return $result;
}

Parametri
(Tralascio i parametri "standard" la cui descrizione potrete trovare nei post precedenti)
string $audio: file audio da inviare. Puoi utilizzare un link o l'id del file salvato sui server telegram.
string $caption: didascalia.
integer $duration: durata audio in secondi.
string $performer: performer audio.
string $title: track name.

Esempio

if($messaggio=="/audio"){
$inline_keyboard[]=[["text"=>"Tastiera", "callback_data"=>1]];
sendAudio($idChat, "LINK", "Didascalia", $inline_keyboard);
}

La risposta del bot sarà quella mostrata nella foto qui sotto. ‌‎
785 views14:35
Aprire / Come
2018-01-04 18:31:28 #method #sendPhoto ‎
Usa questo metodo per inviare foto.

function sendPhoto($chat_id, $photo, $caption, $inline_keyboard, $disable_notification=false, $reply_to_message_id=false){
global $api;
$fields=["chat_id"=>$chat_id, "photo"=>$photo, "caption"=>$caption, "reply_to_message"=>$reply_to_message, "disable_notification"=>$disable_notification];
if($inline_keyboard) {
$reply_markup=["inline_keyboard"=>$inline_keyboard];
$fields['reply_markup']=json_encode($reply_markup);
}
$result=run("sendPhoto", $fields, false);
return $result;
}

Parametri
integer or string $chat_id: identificatore unico della chat o dell'utente a cui inviare la foto.
inputFile or string $photo: foto da inviare.
string $caption: didascalia della foto. (Optional)
bool $disable_notification: se true gli utenti riceveranno il messaggio senza alcuna notifica. (Optional)
$reply_to_message_id integer: id del messaggio a cui si vuole rispondere. (Optional)
array $inline_keyboard: tastiera inline allegata alla foto (Optional).
Deve essere un array di array, come mostrato qui sotto

$inline_keyboard[]=[["text"=>"Ciao!", "callback_data"=>"1"]];

Esempio

if($messaggio=="/photo"){
$inline_keyboard[]=[["text"=>"Tastiera", "callback_data"=>1]];
sendPhoto($idChat, "https://tlgur.com/d/AGEX17P8", "Didascalia", $inline_keyboard);
}

La risposta del bot sarà quella mostrata nella foto qui sotto. ‎
729 views15:31
Aprire / Come
2018-01-04 18:18:33 #method #forwardMessage
Usa questo metodo per inoltrare un messaggio di ogni genere in una chat.

function forwardMessage($chat_id, $from_chat_id, $message_id, $disable_notification=false){
global $api;
$fields=["chat_id"=>$chat_id, "from_chat_id"=>$from_chat_id, "message_id"=>$message_id, "disable_notification"=>$disable_notification];
$result=run("forwardMessage", $fields, false);
return $result;
}

Parametri
integer or string $chat_id: identificatore unico della chat o dell'utente a cui inviare il messaggio.
integer or string $from_chat_id: identificatore unico della chat originale in cui il messaggio fu inviato.
bool $disable_notification: se true gli utenti riceveranno il messaggio senza alcuna notifica. (Optional)
integer $message_id: id del messaggio da inoltrare.

Esempio

if($messaggio){
forwardMessage($chat_id, $chat_id, $message_id, false);
}

La risposta del bot sarà quella mostrata nella foto qui sotto. ‎
666 views15:18
Aprire / Come
2018-01-04 18:09:42 Importante! Le funzioni che seguono utilizzano la funzione run() inviata nel primo post; senza di essa il codice non funzionerà!

#method #sendMessage
Usa questo metodo per inviare messaggi di testo.


$api="Bot token";
function sendMessage($chat_id, $text, $inline_keyboard, $reply_to_message_id=false, $parse_mode="html", $disable_web_page_preview=false, $disable_notification=false){
global $api;
$fields=["chat_id"=>$chat_id, "text"=>$text, "parse_mode"=>$parse_mode, "disable_web_page_preview"=>$disable_web_page_preview, "disable_notification"=>$disable_notification];
if($inline_keyboard) {
$reply_markup=["inline_keyboard"=>$inline_keyboard];
$fields['reply_markup']=json_encode($reply_markup);
}
if($reply_to_message_id) {
$fields['reply_to_message_id']=$reply_to_message_id;
}
$result=run("sendMessage", $fields, false);
return $result;
}

Parametri
integer or string $chat_id : identificatore unico della chat o dell'utente a cui inviare il messaggio.
string $text: testo del messaggio da inviare
array $inline_keyboard: tastiera inline allegata al messaggio (Optional).
Deve essere un array di array, come mostrato qui sotto

$inline_keyboard[]=[["text"=>"Ciao!", "callback_data"=>"1"]];

bool $disable_web_page_preview: disabilita o abilita l'anteprima dei link nel messaggio. (Optional)
bool $disable_notification: se true gli utenti riceveranno il messaggio senza alcuna notifica. (Optional)
$reply_to_message_id integer: id del messaggio a cui si vuole rispondere. (Optional)

Esempio

if($messaggio=="/start"){
$inline_keyboard[]=[["text"=>"Ciao!", "callback_data"=>1]];
sendMessage($idChat, "Ciao $nomeUtente!", $inline_keyboard);
}

La risposta del bot sarà quella mostrata nella foto qui sotto. ‎
647 views15:09
Aprire / Come
2018-01-04 17:49:49 Rispondere ad un update
Per "rispondere" agli update telegram mette a disposizione delle API (Application Programming Interface) la cui documentazione è reperibile qui.

I post che seguiranno saranno dedicati alla descrizione dei methods e all'esemplificazione della maggior parte di loro.
572 views14:49
Aprire / Come
2018-01-04 17:47:06 Elaborazione dati e risposta
Per elaborare i dati è possibile utilizzare qualsiasi strumento il php mette a disposizione - o, addirittura, integrare altri linguaggi di programmazione.

if($message=="/start"){
$risposta="Ciao $nomeUtente! Come va?";
sendMessage($chatID, $risposta);
}

Tralasciando la funzione sendMessage, il codice qui sopra è un esempio di modo di elaborare i dati raccolti dall'update.
577 views14:47
Aprire / Come
2018-01-04 17:43:45 Ottenere gli updates
Ogni bot telegram si basa sull'ottenimento di updates e le risposte ad essi.
Gli update sono oggetti JSON che i server telegram inviano al link impostato tramite setWebhook - nel caso si utilizzasse getUpdates, l'operazione va eseguita manualmente e non è possibile utilizzare la procedura spiegata di seguito.
Per ottenere ed elaborare un update si utilizza, di norma, il seguente codice:

$content = file_get_contents("php://input");

$content conterrà, come detto prima, un oggetto JSON simile a questo:

{
"update_id": 143871881,
"message": {
"message_id": 35872,
"from": {
"id": 309657717,
"is_bot": false,
"first_name": "Alessandro",
"username": "AlFox02",
"language_code": "it"
},
"chat": {
"id": 309657717,
"first_name": "Alessandro",
"username": "AlFox02",
"type": "private"
},
"date": 1515076706,
"text": "/start",
"entities": [
{
"offset": 0,
"length": 6,
"type": "bot_command"
}
]
}
}

Per poterlo elaborare è necessario convertirlo in un array, utilizzando json_decode();

$content = file_get_contents("php://input");
$update = json_decode($content, true);

A questo punto siamo in grado di ricavare tutte le variabili necessarie allo step successivo: l'elaborazione dati e la risposta!

$messaggio=$update['message']['text'];
$nomeUtente=$update['message']['from']['first_name'];
$idUtente=$update['message']['from']['id'];
$idChat=$update['chat']['id'];
608 views14:43
Aprire / Come
2018-01-04 14:00:08 La funzione run()
Php mette a disposizioni le funzioni per eseguire la stessa azione più volte nel codice anche a distanza di codice.
Capito come definirle, è semplice creare delle funzioni dedicate ai methods telegram. Qui di seguito riporto una funzione che consiglio di utilizzare per inviare le richieste con metodo GET/POST ai server telegram.


function run($method, $fields, $GET=false){
global $api;
$a=($GET)?"GET":"POST";
$u=curl_init("https://api.telegram.org/bot$api/".$method);
curl_setopt($u,CURLOPT_LOW_SPEED_TIME, 10);
curl_setopt($u, CURLOPT_CUSTOMREQUEST, $a);
curl_setopt($u, CURLOPT_RETURNTRANSFER, true);
curl_setopt($u, CURLOPT_POSTFIELDS, $fields);
$result=curl_exec($u);
if(!$result){
return false;
} else {
return $result;
}
curl_close($u);
}

Parametri
string $method : il methodo telegram da utilizzare (sendMessage, editMessageText, answerInlineQuery...).
array $fields : un array dei parametri della query che verrà effettuata ai server telegram. (esempio: $fields=["chat_id"=>123456789, "text"=>urlencode("Hello World"), "parse_mode"=>"html"]; )
bool $GET : se true, la richiesta ai server verrà effettuata tramite metodo GET altrimenti POST. Di default è impostato su false.

$api rappresenta l'API key del vostro bot.
629 views11:00
Aprire / Come
2018-01-04 12:57:41 Anno nuovo, vita nuova?
Prima di iniziare a scrivere del futuro del canale, voglio stilare un breve resoconto della sua - seppur breve - vita.
Fondato il 26 giugno 2017, il canale si chiamava "Imparando il Piaccapi" e non "Piaccapi". Il suo obiettivo, che si è andato perdendendo, era quello di insegnare la programmazione in php a quella fetta di utenza telegram che voleva cimentarsi nella creazione di bot.
Certo, una causa nobile che ha riscosso un successo dopo l'altro. A metà luglio "Imparando il Piaccapi" possedeva già 300 iscritti (in meno di 30 giorni di attività). Qualcuno potrebbe obbiettare che altri canali hanno fatto molto meglio in meno tempo. Certo, ma dipende anche dal tipo di canale. Piaccapi non è per tutti.
E' arrivato poi settembre che assieme alla magia estiva si è portato via gran parte dell'attività. Io personalmente avrei continuato a pubblicare post, ma percepivo la scarsa presenza degli utenti, un'attività che piano piano si affievoliva.
A novembre l'ancor giovane "Imparando il Piaccapi" si trasformava in "Piaccapi" abbandonando definitivamente quell'obbiettivo che era stato la causa della sua nascita.
Noto che molti utenti stanno uscendo dal canale. Li capisco, avrei fatto anche io lo stesso. Ma, a volte, un pizzico di fiducia in più viene ricompensato.
Tramite questo messaggio vi prometto che "Piaccapi" tornerà ad essere "Imparando il Piacacpi". Lo scopo? Quello originario ma si presuppone una conoscenza base del php.
il canale diventerà una documentazione completa per esempi dei metodi Telegram. Non vi insegnerò a creare bot ma vi darò gli strumenti giusti per farlo.
Non consegnerò nemmeno #pappapronta, come piace definirla a molti. I codici che invierò non possono da soli costituire un bot telegram.
Detto ciò ringrazio chi, con cui ho avuto il piacere di parlare, mi ha fatto venire in mente questa idea.
Siete pronti per il grande ritorno?

Alessandro
667 viewsedited  09:57
Aprire / Come
2018-01-01 02:17:31
Happy new year from @Piaccapi!
767 viewsedited  23:17
Aprire / Come