YES! THANK YOU!

The removal of http_build_query was the missing, secret ingredient. All is
well now in my OAuth world!

Thanks again,
Magnus


On Thu, Mar 20, 2014 at 2:05 PM, Brad Jorsch (Anomie) <[email protected]
> wrote:

> On Wed, Mar 19, 2014 at 3:20 PM, Magnus Manske
> <[email protected]>wrote:
>
> > Hi Brad,
> >
> > I'm sure that's correct, but:
> >
> > * When I just sign the OAuth params (no content type, no POST fields), I
> > get "The authorization headers in your request are not valid: Invalid
> > signature"
> > * When I then add the content-type to the header, I get ... the API help
> > page, wrapped in the XML tag  <error code="help" info=""
> > xml:space="preserve"> (even though I am querying JSON...)
> >
> > Apologies if this gets too detailed for the mailing list, it's just very
> > frustrating :-(
> >
>
> It's wikitech, code talk should be expected ;)
>
> I've taken the example code at <
> https://tools.wmflabs.org/oauth-hello-world/index.php?action=download> and
> changed it to use a multipart/form-data POST; this new version is at <
>
> https://tools.wmflabs.org/oauth-hello-world/multipart-formdata.php?action=download
> >.
> You'll notice only two changes to the code.
>
> The first (and the important one) is that the call to sign_request() from
> doApiQuery() only passes the OAuth header fields, not the post fields.
>
> The second is that the call to curl_setopt for CURLOPT_POSTFIELDS from
> doApiQuery() passes the $post array directly instead of first converting it
> to a string with http_build_query(). This is what makes curl (or PHP's
> implementation of it) use multipart/form-data rather than
> application/x-www-form-urlencoded.
>
> Besides some config and doc changes, everything else remains the same.
>
> I hope this helps.
>
> --
> Brad Jorsch (Anomie)
> Software Engineer
> Wikimedia Foundation
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>



-- 
undefined
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to