Some OAuth endpoints (like stackoverflow) do not like the parameters passed with URL encoding. since OAuth->uri() uses http_build_query(), all URIs generated will have invalid characters. This specifically affects access_token and key parameters.
Maybe use http_build_query's enc_type = PHP_QUERY_RFC3986 for that purpose (only escape spaces) and set this as instance var, because the request-method uses http_build_query too?
Sidenote: please clean up your commit.