Closed ali-ce closed 4 years ago
Ciao @ali-ce e grazie per essere qui con noi.
Domanda bacchettona: quindi usi come fonte il feed RSS, e per ogni nuovo feed item si attiva il webhook di IFTTT che scrive sul canale. Corretto?
Grazie
@FabriSS mi puoi condividere in lettura il foglio elettronico che usi per generare il feed? Grazie
@aborruso sì, almeno così penso. Ti allego foto di impostazioni ricetta IFTTT (ho provato diverse impostazioni, dividendo url/body o mettendo tutto in url; lasciando &parsehtml e togliendo qualsiasi carattere strano di formattazione html)
@FabriSS mi puoi condividere in lettura il foglio elettronico che usi per generare il feed? Grazie
@aborruso abilitata la lettura: https://docs.google.com/spreadsheets/d/1mTYyfrXIhM5GYp5r5Q07hY619zFsz9ThlU_K4gzE1hs/edit?usp=sharing
@ali-ce per esperienza ti consiglio di inserire tutto l'url da parsare nel campo "url", lasciando vuoto il campo "body". Come ti scrivevo su facebook, inverti la posizione di EntryUrl e EntryTitle, mettendo il secondo in ultima posizione, in modo da avere in ogni caso il link di riferimento dell'atto e la troncatura del messaggio solo in parte del titolo
@FabriSS all'inizio era così, con tutto su url e niente su body..diciamo che oggi le sto provando un po' tutte per vedere quale va meglio! Adesso risistemo. Posso chiederti perchè però è meglio tutto su url? stavo cercando di capire la differenza dei due approcci, ma non ho trovato niente
Su telegram viene passato un url tramite le api, e viene interpretato per effettuare la pubblicazione sul canale che ti interessa. Il trigger di ifttt tramite webhook interpreta come url utile proprio quello presente nel campo "url". Ciò che viene inserito nel campo body come viene concatenato? Vengono inseriti caratteri aggiuntivi? viene fatto in modo pulito? e se cambiano le impostazioni si ifttt? o quelle delle api telegram? dovrò ricomporre l'url? Visto che non ho queste info, senza saper né leggere né scrivere, metto tutto in un unico campo, così da evitare che eventuali modifiche future vadano a bloccare tutto. In passato cmq mi è accaduto che la concatenazione tra url e body venisse fatta aggiungendo uno "spazio".
Cercando su google ho trovato questa guida:
https://birdie0.github.io/discord-webhooks-guide/services/ifttt.html
in cui consigliano di usare la formula <<
Un'altra cosa che mi è venuta in mente: guardando il feed, EntryContent dovrebbe avere i caratteri già con encoding giusto: forse usando quello invece di EntryTitle il problema si risolve? Intanto provo
@ali-ce è un problema di encoding e di tuning degli strumenti.
Non ti do una risposta ora sul tuo problema esatto, ma soltanto teorico pratica. Se voglio scrivere in una chat telegram la stringa Alice & i suoi bot > di tutti gli altri
il comando di base è
curl -X POST "https://api.telegram.org/bot166104195:xxxXXX/sendMessage" -d "chat_id=@andychat&text=Alice%20%26%20i%20suoi%20bot%20%3E%20di%20tutti%20gli%20altri"
che produce quello che desidero
La stringa è stata sottoposta a encoding di caratteri e inviata tramite -X
che setta l'invio come application/x-www-form-urlencoded
. Quindi c'è da impostare/testare una cosa simile.
Io da un po' non uso più il webhook, ma aggiungo l'utente IFTTT come admin al canale e creo una regola "scrivi al canale telegram via utente ifttt". Se non sbaglio, in questo caso, gestisce lui codifica e decodifica. Ma devo testare
Segnalo che ho risolto il problema in questo modo:
Forse l'errore è anche di IFTTT: dicono di escape characters con "<<>>" mentre va fatto con "<<<>>>"
Penso si possa quindi chiudere la issue
viva @ali-ce
ottimissimo
Se nella variabile "text" della chiamata che IFTTT invia a Telegram c'è del testo che contiene il carattero "&", lFTTT non è in grado di parsare correttamente EntryContent e non pubblica il feed item su Telegram, o lo fa in parte (solo il testo prima del simbolo &), con errore 400.