You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 21, 2022. It is now read-only.
I am trying to getting access to Khan Academy using ScribeJava OAuth mechanism. After getting a token successfully I get an exception of 401. Which is quite definite about unauthorized access. And If I change the URL to the one
It gives me a response. But, all the user related information is empty in response.
public abstract class KhanAcademyAccess {
private final static String USER_AGENT = "Mozilla/5.0";
public static void main(String... args) throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException, IOException, Exception {
String videoId = "C38B33ZywWs";
String username = "###";
String password = "###";
final OAuth10aService service = new ServiceBuilder()
.apiKey("###")
.apiSecret("###")
.build(KAApi.instance());
//Get Request Token
final OAuth1RequestToken requestToken = service.getRequestToken();
System.out.println(requestToken.getToken());
sendPost("https://www.khanacademy.org/api/auth2/authorize", username, password, requestToken.getToken().toString());
final OAuth1AccessToken accessToken = service.getAccessToken(requestToken, "");
System.out.println(accessToken);
final OAuthRequest request = new OAuthRequest(Verb.GET, "https://www.khanacademy.org/api/internal/_mt/user/videos/cGg1j1ZCCOs/log_compatability?", service);
service.signRequest(accessToken, request);
request.addHeader("Accept", "application/json; charset=utf-8");
request.addHeader("Content-Type", "application/json; charset=utf-8");
request.addHeader("X-Requested-With", "XMLHttpRequest");
request.addHeader("Accept-Encoding", "application/json");
Response response = request.send();
System.out.println(response.getCode());
System.out.println(response.getMessage());
System.out.println(response.getBody());
}
private static void sendPost(String url, String username, String password, String oauthToken) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
// Comment out from here (Using /* and */)...
// ...to here and the request will fail with "HttpResponseException: Moved Permanently"
try {
HttpPost httpPost = new HttpPost(url);
String encoding = Base64Encoder.getInstance().encode(StringUtils.getBytes(username + ":" + password));
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("identifier", username));
params.add(new BasicNameValuePair("password", password));
params.add(new BasicNameValuePair("oauth_token", oauthToken));
httpPost.setEntity(new UrlEncodedFormEntity(params));
System.out.println("executing request " + httpPost.getURI());
// Create a response handler
ResponseHandler<String> responseHandler = new BasicResponseHandler();
HttpResponse responseBody = httpclient.execute(httpPost);
// Add your code here...
int responseCode = responseBody.getStatusLine().getStatusCode();
while(responseCode!=200 ){
for(Header header : responseBody.getAllHeaders()){
if(header.getName().equalsIgnoreCase("Location")){
responseCode = getRequest(header.getValue());
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// When HttpClient instance is no longer needed, shut down the connection
// manager to ensure immediate deallocation of all system resources
}
}
I am using username and password authentication because I want to automate the authorization process and don't want user to be redirected to the page and click on Accept button.
Adding logs that may be useful in order to identify the problem Request Token:
OAuth1RequestToken{oauth_token=t0000005405940108, oauth_token_secret=NyGQchdSAj7AwukA, oauth_callback_confirmed=true} Access Token:
OAuth1AccessToken{oauth_token=t0000005413417574, oauth_token_secret=UMAV7Y54suAVPcJZ}
The text was updated successfully, but these errors were encountered:
kirmaniwasif
changed the title
Problem with OAuth in Java
Problem with OAuth in Java - OAuth error. Consumer access denied.
May 11, 2016
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I am trying to getting access to Khan Academy using ScribeJava OAuth mechanism. After getting a token successfully I get an exception of 401. Which is quite definite about unauthorized access. And If I change the URL to the one
It gives me a response. But, all the user related information is empty in response.
I am using username and password authentication because I want to automate the authorization process and don't want user to be redirected to the page and click on Accept button.
Adding logs that may be useful in order to identify the problem
Request Token:
OAuth1RequestToken{oauth_token=t0000005405940108, oauth_token_secret=NyGQchdSAj7AwukA, oauth_callback_confirmed=true}
Access Token:
OAuth1AccessToken{oauth_token=t0000005413417574, oauth_token_secret=UMAV7Y54suAVPcJZ}
The text was updated successfully, but these errors were encountered: