2012-11-07 9 views
5

ho un piccolo problema con Meteor e Twitter. Tutto quello che voglio fare è pubblicare un tweet attraverso un clic su un pulsante. Per questo devo autenticarmi su Oauth per Twitterservice.Come pubblicare un tweet con Meteor.js, Twitter e Oauth

Al momento sto eseguendo l'autenticazione in un modo davvero complicato passando dal client al server e viceversa. Ma ora ho trovato la funzione Meteor.loginWithTwitter. Inizialmente pensavo che questa funzione fosse solo per accedere alla tua applicazione con i tasti Twitter, ora non ne sono più sicuro. Probabilmente posso anche usarlo per il mio problema. Perché sembra che il processo di Oauth sia completamente (e in un modo semplice) implementato in Meteor.

Purtroppo non riesco a trovare alcuna documentazione o esempi per accedere e ottenere il oauth_token finale. E così tutto ho ottenuto da Meteor allora provo il seguente codice, è questo errormessage:

Erromessage: Accounts.ConfigError {messaggio: "Il servizio non configurato"}

Meteor.loginWithTwitter(function(err){ 
    if (err){ 
    console.log(err) 
    }else{ 
    console.log("yeah"); 
} 
}); 

So che devo per entrare da qualche parte la mia Appinformazione come la chiave del consumatore, ma non ho idea di dove. Qualcuno può aiutarmi e conosce alcuni esempi per me? O sa se sono sulla buona strada?

Grazie e saluti Philipp

risposta

6

Il modo più semplice per farlo: Aggiungere il pacchetto conti-ui:

meteor add accounts-ui accounts-twitter 

e nel modello di fare

{{loginButtons}} 

Al primo avvio dell'applicazione, un clic sul pulsante di accesso ti guiderà attraverso il processo di installazione. Creerai un'applicazione per Twitter e copi la chiave del consumatore e il segreto del consumatore in un modulo, che la meteora ti presenta. Successivamente è possibile accedere utilizzando Twitter.

Assicurarsi di utilizzare la versione più recente Meteor (0.5.2 in questo momento)

+1

questa risposta non è aggiornato ora, dovrebbe essere '{{> loginButtons}}' – pahan

1

È anche possibile configurare le solite chiave e il segreto con il codice, questo è un esempio di Weibo, ma il suo lavoro per Twitter, Google, ecc ... (lato server):

// first, remove configuration entry in case service is already configured 
Accounts.loginServiceConfiguration.remove({ 
    service: "weibo" 
}); 
Accounts.loginServiceConfiguration.insert({ 
    service: "weibo", 
    clientId: "1292962797", 
    secret: "75a730b58f5691de5522789070c319bc" 
}); 
1

È necessario aggiungere che cosa @ Tom31 suggerito nel lato server, vale a dire, ho un server/server /.js

Accounts.loginServiceConfiguration.remove({"service": "twitter"}); 
Accounts.loginServiceConfiguration.insert({ 
"service": "twitter", 
"consumerKey" : "<yours>", 
"secret" : "<yours>" 
}); 

Infine, il token di accesso sono memorizzati nel vostro utente al database, ma questa informazione non viene propagata al cliente e, se si vuole avere accesso ad esso, è nuovo di creare un metodo lato server e accedervi tramite Meteor.call o Meteor.apply

aggiornato: Esempio di mio metodo lato server

ho creato il mio metodo lato server in questo modo:

Meteor.methods({ 
... 
    userGet: function(id) { 
    return removeSensibleFields(Meteor.users.findOne({ _id: id })); 
    } 
... 
}); 

dove removeSensibleFields è un metodo per rimuovere tutte le informazioni inutili/privata che non può essere inviato al client

+0

Si può fornire un esempio di come sarebbe il metodo lato server? – Rico

+0

Aggiornato il mio post – bitIO

Problemi correlati