Joomla.it Forum

Joomla! 3 => Joomla! 3 => : anto16 21 May 2016, 10:28:40

: Quasi Risolto - Modulo html con API
: anto16 21 May 2016, 10:28:40
Salve a tutti,
premetto che penso che il problema non sia di joomla bensì del codice che non riesco a sistemare.

All'interno del sito, attraverso un modulo html, stocercando di posizionare un codice che permette di incorporare ad esempio, una petizione dal seguente indirizzo https://www.change.org/p/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution (https://www.change.org/p/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution)

cosi dal seguente tutorial https://www.change.org/developers/tutorials/a-basic-request (https://www.change.org/developers/tutorials/a-basic-request) ho seguito  la procedura ed ho inserito il codice nel mio modulo html personalizzato.

<?php
$API_KEY = 'example';
$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id'; (https://api.change.org/v1/petitions/get_id';)
$PETITION_URL = 'http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution'; (http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution';)
$parameters = array(
  'api_key' => $API_KEY,
  'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
$petition_id = $json_response['petition_id'];
echo $petition_id;
?>

Ma purtoppo non riesco a visualizzarlo nel mio sito.
Qualcuno potrebbe essere gentile, considerato che changeorg, nonostante sia una delle piu grandi piattaforme per le petizioni on line, non riescono ad aiutarmi???
Grazie infinite
: Re:Modulo html con API
: giusebos 21 May 2016, 10:32:47
il link del tuo sito con il modulo attivo ed il codice inserito, che analiziamo la pagina
: Re:Modulo html con API
: tomtomeight 21 May 2016, 11:54:34
Nei moduli non puoi eseguire codice php, ti conviene usare un apposita estensione tipo sourcerer o ppure abilitare il php da settaggio editor (sconsigliato)
: Re:Modulo html con API
: anto16 22 May 2016, 09:47:09
salce, ancora grazie in anticipo
ho installato sourcerer ed all'interno del modulo personalizzato html su inserirsci codice si apre la finestra cosi:

{source}
<!-- You can place html anywhere within the source tags -->


<script language="javascript" type="text/javascript">
    // You can place JavaScript like this
   
</script>
<?php
    // You can place PHP like this
   
?>
{/source}

ho provato ad inserire il codice di esempio su con api key ma ancora nulla:

<?php
$API_KEY = 5003520e8a003612049a811c7279259d3128fbe afa6d90ae267bf7786e92ef82;
$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id'; (https://api.change.org/v1/petitions/get_id';)
$PETITION_URL = 'https://www.change.org/p/io-proviamo'; (https://www.change.org/p/io-proviamo';)
$parameters = array(
  'api_key' => $API_KEY,
  'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
$petition_id = $json_response['petition_id'];
echo $petition_id;
?>

forse sono sbagliati i parametri?
grazie ancora
: Re:Modulo html con API
: tomtomeight 22 May 2016, 11:26:37
Il codice va inserito nei tag source
: Re:Modulo html con API
: anto16 22 May 2016, 11:30:46
grazie
sto provando cosi ma esce errore :'(

{source}
<?php
$API_KEY = 5003520e8a003612049a811c7279259d3128fbe afa6d90ae267bf7786e92ef82;
$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id';
$PETITION_URL = 'https://www.change.org/p/io-proviamo';
$parameters = array(
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)'api_key' => $API_KEY,
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
$petition_id = $json_response['petition_id'];
echo $petition_id;
?>
{/source}

Grazie ancora
: Re:Modulo html con API
: tomtomeight 22 May 2016, 14:53:24
Che tipo di errore.
: Re:Modulo html con API
: anto16 22 May 2016, 15:42:27
Parse error:  syntax error, unexpected 'a003612049a811c7279259d3128fbe' (T_STRING) in /membri/codicec/plugins/system/sourcerer/helper.php(628) : runtime-created function on line 7
 
 Fatal error:  Function name must be a string in /membri/codicec/plugins/system/sourcerer/helper.php on line 633
: Re:Modulo html con API
: tomtomeight 22 May 2016, 15:52:41
Verifica la compatibilità della versione php che usi con le richieste dello script.
: Re:Modulo html con API
: anto16 22 May 2016, 15:56:38
risulta che sto utilizzando php 5.4
per caso c'etnrano le connessioni server to server?
: Re:Modulo html con API
: tomtomeight 22 May 2016, 18:04:31
L'errore riguarda l'apikey, verifica che sia scritta senza interruzioni o interrotta da accapo.
: Re:Modulo html con API
: anto16 22 May 2016, 21:59:13
grazie ancora

ho inserito gli apici all'inizio e alla fine della apikey

$API_KEY = '5003520e8a003612049a811c7279259d3128fbe
afa6d90ae267bf7786e92ef82';
gli errori adesso non escono, però si vede solo il titolo del modulo

il tutorial è questo https://www.change.org/developers/tutorials/a-basic-request
forse sbaglio nei parametri
: Re:Modulo html con API
: anto16 24 May 2016, 15:37:46
ho notato che il post ha ricevuto molto visite... sono contento almeno di aver creato un post interessante :-)
Grazie a voi tutti per la desiderata solution
: Re:Modulo html con API
: $Red 24 May 2016, 15:41:48
Ciao, ho letto sopra che facevi riferimento alle connessioni servertoserver se sei su altervista ed hai risolto i problemi con il codice prova ad attivarle, per visualizzare contenuto proveniente dall'esterno di altervista potrebbe essere necessario
: Re:Modulo html con API
: anto16 24 May 2016, 15:50:52
sono su altervista, si grazie
ho mandato sms per identificazione.
Entro 30 minuti dovrebbe avvenira lo sblocco
allego schermata m all'interno non vedo changeorg, spero non sia un problema
Aspettiamo
Grazie ancora
: Re:Modulo html con API
: anto16 24 May 2016, 17:19:46
Trascorso piu di 30 minuti , ma il modulo continua a non vedersi.
La cosa strana che ho provato a contattare changeorg e non sanno rispondere :-)))
Grazie ancora a Voi tutti
: Re:Modulo html con API
: tomtomeight 24 May 2016, 18:51:12
Secondo me hai un api key errata, ho provato ad eseguire esternamente il file con la tua chiave e non mi visualizza nulla, lo stesso e metto nessuna chiave.
: Re:Modulo html con API
: anto16 25 May 2016, 16:54:34
garzie ancora,
allora cerco di fare meglio lo scenario:

da sito www.change.org (http://www.change.org) ho creato una petizione di prova https://www.change.org/p/io-proviamo (https://www.change.org/p/io-proviamo)

poi dal tutorial per incorporare la petizione nel proprio sito ho richiesto le apikey e mi rilascia anche la secret api (che non saprei dove metterla) e mi esce 
{"success":true,"api_key":"5003520e8a003612049a811c7279259d3128fbe afa6d90ae267bf7786e92ef82","

api_secret":"9262c2a2dd85f177e5b30e5e4628da0b2ca38a9 0d92e84f3e4320aabe6f0a90d"}

infine nel modulo html personalizzato dovrei inserire il codice preleato da

https://www.change.org/developers/tutorials/a-basic-request (https://www.change.org/developers/tutorials/a-basic-request)

ho provato ad adattare ma non funziona.

Spero di essere stato il piu trasparente possibile

razie ancora per le soluzioni
: Re:Modulo html con API
: tomtomeight 25 May 2016, 18:10:11
Hai uno spazio in più all'interno dell'api key nel tuo codice e come ti ho scritto prima non devi inserirla in due righe, scrivila senza andare accapo.
: Re:Modulo html con API
: anto16 25 May 2016, 21:56:32
cosi il codice inserito nel modulo html, ma ancora nulla:

{source}
<?php
$API_KEY="success":true,"api_key":"5003520e8a003612049a811c7279259d3128fbe afa6d90ae267bf7786e92ef82","api_secret":"9262c2a2dd85f177e5b30e5e4628da0b2ca38a9 0d92e84f3e4320aabe6f0a90d";
$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id';
$PETITION_URL = 'https://www.change.org/p/io-proviamo';
$parameters = array(
'api_key' => $API_KEY,
'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
$petition_id = $json_response['petition_id'];
echo $petition_id;
?>
{/source}

Grazie ancora
: Re:Modulo html con API
: anto16 25 May 2016, 22:04:56
cercando meglio sul portale change.org è possibile incorporare il codice

<script src="https://d18kwxxua7ik1y.cloudfront.net/product/embeds/v1/change-embeds.js (https://d18kwxxua7ik1y.cloudfront.net/product/embeds/v1/change-embeds.js)" type="text/javascript"></script>
<div class="change-embed-petition" data-petition-id="7116479"></div>

cosi appare nel menu ma mi porta solo al link, invece dovrebbe apparire come nell'allegato sulla destra.

Grazie ancora

: Re:Modulo html con API
: tomtomeight 25 May 2016, 22:25:33
Ma devi mettere solo il numero racchiuso nei doppi apici come apikey, è così difficile?
: Re:Modulo html con API
: anto16 25 May 2016, 22:32:14
{source}
<?php
$API_KEY = '5003520e8a003612049a811c7279259d3128fbe
afa6d90ae267bf7786e92ef82';
$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id'; (https://api.change.org/v1/petitions/get_id';)
$PETITION_URL = 'http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution'; (http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution';)
$parameters = array(
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)'api_key' => $API_KEY,
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)'petition_url' => $PETITION_URL
);
$query_string = http_build_query($parameters);
$final_request_url = "$REQUEST_URL?$query_string";
$response = file_get_contents($final_request_url);
$json_response = json_decode($response, true);
$petition_id = $json_response['petition_id'];
echo $petition_id;

?>
{/source}

Qusto è il codice che inserisco ma viene visualizzato solo il modulo :-(((
: Re:Modulo html con API
: tomtomeight 25 May 2016, 22:53:39
La petizione non esiste perciò non la vedi, prova a cliccare il link.
: Re:Modulo html con API
: anto16 26 May 2016, 07:47:25
da come scritto nel tutorial in questi due parametri non riesco a capire cosa inserire, ho provato diversi casi ma ancora nulla

$REQUEST_URL = 'https://api.change.org/v1/petitions/get_id'; (https://api.change.org/v1/petitions/get_id%27;)

$PETITION_URL = 'http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution'; (http://www.change.org/petitions/dunkin-donuts-stop-using-styrofoam-cups-and-switch-to-a-more-eco-friendly-solution%27;)

$REQUEST_URL = ???? Cosa metto??? come trovo l'id della petizione???

$PETITION_URL = https://www.change.org/p/io-proviamo

Grazie ancora
: Re:Modulo html con API
: tomtomeight 26 May 2016, 11:54:22
Forse ho capito, lo script serve per ottenere solo il petition id, infatti mettendo come url la tua petizione e come key il tuo key ottengo l'id 7116479
dettato dalla istruzione finale

echo $petition_id;

In pratica credo che hai preso lo script sbagliato, per la firma devi usare questo

https://github.com/change/api_docs/blob/master/v1/examples/sign_petition.php

i ci metti sempre il tuo id e il tuo petition url

: Re:Modulo html con API
: anto16 26 May 2016, 12:02:51
Grazie ci provo
: Re:Modulo html con API
: anto16 26 May 2016, 12:20:18
grazie ancora forse ci siamo.
Come sei riuscito a trovare l'ID???

Ho inserito nel modulo il seguente codice:

{source}
<?php
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Set my API key and secret token.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$api_key = '
5003520e8a003612049a811c7279259d3128fbeafa6d90ae267bf7786e92ef82';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$secret = '
9262c2a2dd85f177e5b30e5e4628da0b2ca38a90d92e84f3e4320aabe6f0a90d';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Set my authorization key for petition with Change.org ID 12345.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$petition_auth_key
= 'my_petition_auth_key';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$petition_id = 7116479;
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Set up the endpoint and URL.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$base_url = "https://api.change.org";
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$endpoint = "/v1/petitions/$petition_id/signatures";
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$url = $base_url . $endpoint;
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Set up the signature parameters.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters = array();
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['api_key'] = $api_key;
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['timestamp'] = gmdate("Y-m-d\TH:i:s\Z"); // ISO-8601-formtted timestamp at UTC
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['endpoint'] = $endpoint;
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['source'] = 'test.com';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['email'] = 'person@example.com';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['first_name'] = 'John';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['last_name'] = 'Doe';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['address'] = '1 Market St';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['city'] = 'Philadelphia';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['state_province'] = 'PA';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['postal_code'] = '19144';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['country_code'] = 'US';
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Build request signature.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$query_string_with_secret_and_auth_key = http_build_query($parameters) . $secret . $petition_auth_key;
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Add the request signature to the parameters array.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$parameters['rsig'] = hash('sha256', $query_string_with_secret_and_auth_key);
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Create the request body.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$data = http_build_query($parameters);
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// POST the parameters to the petition's signatures endpoint.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$curl_session = curl_init();
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)curl_setopt_array($curl_session, array(
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)CURLOPT_POST => 1,
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)CURLOPT_URL => $url,
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)CURLOPT_POSTFIELDS => $data
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)));
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)$result = curl_exec($curl_session);
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)// Output the returned JSON result.
(http://www.codicec.altervista.org/media/sourcerer/images/tab.png)echo $result;
?>
{/source}


qui non saprei cosa inserire
$petition_auth_key = 'my_petition_auth_key';

Ovviamente ancora nulla, anzi il seguente errore nel modulo:
{"result":"failure","messages":["authorization key cannot be found or is not granted"]}1

Grazie ancora
: Re:Modulo html con API
: tomtomeight 26 May 2016, 14:16:04
Forse invece che andare a tentoni è meglio se ti fai una buona lettura di tutte le sezioni, io adesso non ho tempo e domani potrei non avere voglia.  :)
: Re:Modulo html con API
: anto16 26 May 2016, 15:41:46
grazie ancora,
posso garantire che l'impegno per cercare di capire, tra l'inglese e il codice php, lo metto tutto :) . ma non è semplice...
Non voglio rubare tempo a nessuno, ci mancherebbe... scusami se attraverso i miei post ho fatto capire questo
Grazie ancora
: Re:Modulo html con API
: tomtomeight 26 May 2016, 20:08:58
No tranquillo, la mia era solo per darti maggiore carica. Poi il tempo che spendo qui ti posso assicurare che non è mai perso.  :)
: Re:Modulo html con API
: anto16 27 May 2016, 16:54:31
grazie ancora,
sto studiando, ma purtoppo non riesco a ricevere la my_petition_auth_key ... ho provato a contattare changeorg anche il forum ma niente... chissà perchè...
grazie ancora
: Re:Quasi Risolto - Modulo html con API
: anto16 02 Jun 2016, 16:31:07
Salve a tutti,
ho inserito quasi risolto nel titolo, nel senso che change org non rilascia piu le chiavi di autorizzazioni ma è possibile solo embeddare riportanto al loro sito.
Grazie ancora per la disponibilità mostrata