Thank you Matt, please see below

On 8 фев, 02:00, Matt Harris <thematthar...@twitter.com> wrote:
> Hi Choock,
>
> Twitpic is a 3rd party service so they would no more about their API. That
> being said the OAuth Echo parameter is X-Auth-Service-Provider so it sounds
> like, by changing the header, you're not using OAuth Echo now.
>
Then how am I authorized? I got 401 all the time before and now I can
upload files.
It sounds like Twitpic handles X-Auth-Service-Provider incorrectly
and  X-OAuth-Service-Provider just right.

> In addition, TwitPics documentation states the parameter the same as our
> documentation:
>    http://dev.twitpic.com/docs/2/upload/
>
Yeah, that's true, this is what I wanted to say, second link to
twitter docs was added by mistake.

> Best
> @themattharris
> Developer Advocate, Twitterhttp://twitter.com/themattharris
>
>
>
>
>
>
>
> On Mon, Feb 7, 2011 at 2:48 PM, Choock <d.cho...@gmail.com> wrote:
> > Have just uploaded to Twitpic all correct!
>
> > Adding one single letter solves the problem. Name for the service
> > provider header should be:
>
> > "X-OAuth-Service-Provider"
>
> > and not
>
> > "X-Auth-Service-Provider"
>
> > as it stated herehttp://dev.twitter.com/pages/oauth_echoand here
> >http://dev.twitter.com/pages/oauth_echo
>
> > --Choock
>
> > On 8 фев, 00:43, Choock <d.cho...@gmail.com> wrote:
> > > Hello all,
>
> > > can anybody help me with TwitPic please? Just cannot figure out what
> > > am I doing wrong :(
>
> > > I'm trying to upload a pic making POST request tohttp://
> > api.twitpic.com/2/upload.json
> > > To do this I create required header mocking GET and signing it:
>
> > > HttpGet oauth_get = new HttpGet("https://api.twitter.com/1/account/
> > > verify_credentials.json");
> > >         signer.signRequest(oauth_get);
>
> > > (using Commons httpclient 4.1 and signpost)
>
> > > Then I cut out and modify header as required by TwitPic:
>
> > > String get_value =
> > > oauth_get.getFirstHeader("Authorization").getValue();
> > >         get_value = get_value.replaceFirst("OAuth ","OAuth realm=
> > > \"http://api.twitter.com/\";, ");
>
> > > Then I create actual POST request, add required headers and paramenets
> > > (key,message, file):
>
> > > HttpPost method = new HttpPost("http://api.twitpic.com/2/
> > > upload.json");
> > >         method.setHeader("X-Verify-Credentials-
> > > Authorization",get_value);
> > >         method.setHeader("X-Auth-Service-Provider","https://
> > > api.twitter.com/1/account/verify_credentials.json");
> > >         MultipartEntity entity;
> > >         FileBody media = new FileBody(pic,"image/png");
>
> > >         entity = new
> > > MultipartEntity(null,null,Charset.forName("UTF-8"));
> > >         entity.addPart("media",media);
> > >         try
> > >         {
> > >             for(NameValuePair pair:params)
> > >             {
> > >                 entity.addPart(pair.getName(),new
> > > StringBody(pair.getValue(),Charset.forName("UTF-8")));
> > >             }
> > >             method.setEntity(entity);
> > >         }
> > >         catch(UnsupportedEncodingException e)
> > >         {
> > >             logger.log(Level.WARNING, e.toString());
> > >         }
> > >         return method;
>
> > > And then I send the request (method). Here is what I receive:
>
> > > WARNING: Authentication error: Unable to respond to any of these
> > > challenges: {}
> > > and right after 401 error code.
>
> > > It is important that direct call to Twitter for verification:
>
> > > HttpGet method = new HttpGet("https://api.twitter.com/1/account/
> > > verify_credentials.json");
> > >         signer.signRequest(method);
> > >         return method;
>
> > >  returns OK what means all authentification parameters correct. So, it
> > > is the header for TwitPic. Can anybody point out what's wrong with how
> > > am I creating it?
>
> > > Thank you.
>
> > --
> > Twitter developer documentation and resources:http://dev.twitter.com/doc
> > API updates via Twitter:http://twitter.com/twitterapi
> > Issues/Enhancements Tracker:
> >http://code.google.com/p/twitter-api/issues/list
> > Change your membership to this group:
> >http://groups.google.com/group/twitter-development-talk

-- 
Twitter developer documentation and resources: http://dev.twitter.com/doc
API updates via Twitter: http://twitter.com/twitterapi
Issues/Enhancements Tracker: http://code.google.com/p/twitter-api/issues/list
Change your membership to this group: 
http://groups.google.com/group/twitter-development-talk

Reply via email to