これは機能します:
$.post(
'http://api.imgur.com/2/upload.json',
{
key: 'dsfdwerwersf53534dfsfse3',
image: 'http://i.imgur.com/UH17u.png'
},
function( data ) { console.log( data.upload.links.original ); }
);
Chromeのコンソールでこれを実行すると、imgurはアップロードされた画像のURLをすぐに送信しますhttp://i.imgur.com/KrHMY.png
。素晴らしい。
。
今、私はnode.jsを使用してサーバー側で同じことを試していますが、機能しません:
var
express = require( 'express' )
, app = express.createServer()
, request = require( 'superagent' );
app.get( '/', function( req, res ) {
request
.post( 'http://api.imgur.com/2/upload.json' )
.send( { key: 'dsfdwerwersf53534dfsfse3', image: 'http://i.imgur.com/UH17u.png' } )
.end( function( data ) {
console.log( data.upload.links.original );
});
});
app.listen( '8080' );
node.jsアプリを実行すると、imgurは次の応答を返します。
text: '{"error":{"message":"No API key was sent, and no user is authenticated","request":"\\/2\\/upload.json","method":"post","format":"json","parameters":"image = {\\"key\\":\\"dsfdwerwersf53534dfsfse3\\",\\"image\\":\\"http:\\/\\/i.imgur.com\\/UH17u.png\\"}"}}',
重要な部分はこれです:No API key was sent
。key
送信しているものをimgurが認識しないのはなぜPOST
ですか?
request
とsuperagent
モジュールの両方を使ってみました。なぜこんなに単純なことがうまくいかないのか理解できないのはばかげていると思います。ポインタに感謝します。