5

Meteor と Twitter に少し問題があります。私がしたいのは、ボタンをクリックしてツイートを投稿することだけです。このためには、Oauth を介して Twitter サービスに対して自分自身を認証する必要があります。

現時点では、クライアントからサーバーへ、そしてその逆に、非常に複雑な方法で認証を行っています。しかし今、関数 Meteor.loginWithTwitter を見つけました。当初は、この機能は Twitter キーを使用して自分のアプリケーションにログインするためだけのものだと思っていましたが、今ではよくわかりません。おそらく私の問題にも使用できます。Oauth-Process は完全に (そして簡単な方法で) Meteor に実装されているように見えるからです。

悲しいことに、ログインして最終的な oauth_token を取得するためのドキュメントや例が見つかりません。そして、私がMeteorから得たのは、次のコードを試してみたところ、このエラーメッセージだけです:

エラーメッセージ: Accounts.ConfigError {メッセージ: "サービスが構成されていません"}

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

コンシューマーキーなどのアプリ情報をどこかに入力する必要があることはわかっていますが、どこにあるのかわかりません。誰かが私を助けて、私のためにいくつかの例を知っていますか? または、私が正しい軌道に乗っているかどうかを知っていますか?

ありがとう、ご挨拶フィリップ

4

3 に答える 3

7

これを行う最も簡単な方法: accounts-ui パッケージを追加します。

meteor add accounts-ui accounts-twitter

そしてあなたのテンプレートで

{{loginButtons}}

アプリケーションの最初の起動時に、ログイン ボタンをクリックすると、セットアップ プロセスが案内されます。Twitter アプリケーションを作成し、コンシューマー キーとコンシューマー シークレットを、Meteor が提示するフォームにコピーします。その後、Twitter を使用してログインできます。

必ず最新の Meteor バージョン (現時点では 0.5.2) を使用してください。

于 2012-11-27T21:59:40.197 に答える
1

サーバー側で@Tom31が提案したものを追加する必要があります。つまり、 /server/server.jsがあります

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

最後に、アクセストークンはデータベースのユーザーに保存されますが、この情報はクライアントに伝播されません。アクセスしたい場合は、サーバー側のメソッドを作成し、Meteor.callまたは経由でアクセスする必要があります。 Meteor.apply

更新: サーバー側の方法の例

次のようなサーバー側メソッドを作成しました。

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

ここで、removeSensibleFieldsは、クライアントに返送されない可能性のある不要な情報や個人情報をすべて削除する方法です。

于 2013-11-21T05:26:52.040 に答える