Zwykle używam API tumblr z perl i mam do dyspozycji kilka funkcji.Opublikuj plik obrazu lokalnego na tumblr za pośrednictwem interfejsu API z perlem
Jednak nie mogę pobrać lokalnych plików graficznych do przesłania za pośrednictwem Perla.
Tu jest mój kod, który pracuje dla URL
use LWP::Authen::OAuth;
use JSON;
use Data::Dumper;
use strict;
my $ua = LWP::Authen::OAuth->new(
oauth_consumer_key => 'xxx',
oauth_consumer_secret => 'xxx',
oauth_token => 'xxx',
oauth_token_secret => 'xxx',
);
my $response;
$response = $ua->post('http://api.tumblr.com/v2/blog/mytumblr.tumblr.com/post', [
type => 'photo',
url => 'http://www.example.com/mypic.jpg' ,
caption => 'Test image 1',
]);
if ($response->is_success) {
print "it worked";
}
else {
print "it did not work \n \n \n \n";
print $response->as_string;
}
Jednak, kiedy zastąpił „URL” do „danych” w parametrach pocztowych (zgodnie z instrukcją w opisie API tutaj - http://www.tumblr.com/docs/en/api/v2#posting), wciąż otrzymuję odpowiedź błędu z tumblr. Próbowałem kilku sposobów wprowadzania parametru "data" - jako ścieżki do pliku, jako binarnej reprezentacji, jako adresu URL zakodowanej reprezentacji binarnej, jako binarnej reprezentacji zakodowanej w url base64, zatrzymałem echa jednej z tych wartości jako jedynego elementu w tablicy - próbowałem wszystkich iz każdym otrzymuję komunikat o błędzie z powrotem z tumblr.
Czy ktoś może mi pokazać, jak załadować plik lokalnego obrazu do urządzenia tumblr?
Jakiego błędu dostałeś? – friedo
'HTTP/1.1 400 Niepoprawne żądanie połączenia: zamknij Data: środa, 15 maja 2013 21:48:31 GMT Serwer: nginx Content-Type: application/json; charset = utf-8 Klient-Date: środa, 15 maja 2013 21:48:31 GMT Klient-Peer: 66.6.40.14:80 Klient-Response-Num: 1 Klient-Transfer-Kodowanie: porcje P3P: CP = "ALL ADM DEV PSAi COM NASZE OTRo STP IND ONL "Set-Cookie: tmgioct = 519402aea446110439257710; wygasa = sobota, 13 maja-2023 21:48:30 GMT; ścieżka = /; httponly {"meta": {"status": 400, "msg": "Bad Request"}, "response": {"errors": ["Błąd przesyłania zdjęcia."]}} ' –
spróbuj usunąć część z napisami - Czy to działa? – PHearst