4

Meteorアプリのサーバー側からユーザーのFacebookフィードに投稿しようとしています。

result = Meteor.http.call 'POST',
    "https://graph.facebook.com/#{facebook_id}/feed?access_token=#{app_access_token}",
    { data: { message: "some message", link: "http://www.somelink.com" } }

その結果、次のようになりました。

{"statusCode":400,"content":"{\"error\":{\"message\":\"(#100) Missing message or attachment\",\"type\":\"OAuthException\",\"code\":100}}","headers":{"access-control-allow-origin":"*","cache-control":"no-store","content-type":"text/javascript; charset=UTF-8","expires":"Sat, 01 Jan 2000 00:00:00 GMT","pragma":"no-cache","www-authenticate":"OAuth \"Facebook Platform\" \"invalid_request\" \"(#100) Missing message or attachment\"","x-fb-rev":"710505","x-fb-debug":"doa24fNWaPsogxv4HmXa1/5KA30BBct86VZWVeYsins=","date":"Fri, 11 Jan 2013 13:57:52 GMT","connection":"keep-alive","content-length":"95"},"data":{"error":{"message":"(#100) Missing message or attachment","type":"OAuthException","code":100}},"error":{}}

Facebookデバッガーでこの問題を再現しようとしました。POST本文でパラメーターを送信しない場合にのみ、同じメッセージが表示されました。Meteor.http.callでのPOST実装の問題でしょうか?

4

1 に答える 1

10

HTTP POST リクエストの content body でデータを送信しています。正しい変数を postdata として渡すためdataに使用する必要がありますparams

試す

result = Meteor.http.post(
   "https://graph.facebook.com/#{facebook_id}/feed?access_token=#{app_access_token}",
   { params: { message: "some message", link: "http://www.somelink.com" } } );

また、Meteor.methodsスタブでこれを使用している場合はthis.unblock();、他の操作を同時に実行できるように使用してみてください

更新: meteor の新しいバージョンでは、HTTP代わりに が使用されます。Meteor.http上記のコードはHTTP.post、ドロップイン置換として使用されます。

于 2013-01-11T15:28:47.423 に答える