Aweber Java Api

My goal is to create an aweber application that will add users to an email list that I already have.

I currently have some code that uses Oauth to get the token, but this method also requires aweber account users to manually write down their credentials in order to grant access to the application. I would only use my "aweber" application, for my own purposes, and I want to automate the authentication process. Look at the comment "// go to URL manually here". Thanks in advance for your help.

package aweber.test;

import java.util.Scanner;

import org.scribe.builder.ServiceBuilder;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Token;
impo    rt org.scribe.model.Verb;
import org.scribe.model.Verifier;
import org.scribe.oauth.OAuthService;

public class AweberStuffTest
{

    //To get your consumer key/secret, and view API docs, see https://labs.aweber.com/docs  
    private static final String ACCOUNT_RESOURCE_URL = "https://api.aweber.com/1.0/accounts/";

    private static final String CONSUMER_KEY = "AkW******8QO0dMmmF";
    private static final String CONSUMER_SECRET = "zfgmPsZkXBam6R***********YD";

    public static void main(String[] args)
    {
        OAuthService service = new ServiceBuilder()
        .provider(AWeberApi.class)
        .apiKey(CONSUMER_KEY)
        .apiSecret(CONSUMER_SECRET)
        .build();

        Scanner in = new Scanner(System.in);

        System.out.println("=== AWeber OAuth Workflow ===");
        System.out.println();

        // Obtain the Request Token
        System.out.println("Fetching the Request Token...");
        Token requestToken = service.getRequestToken();
        System.out.println("Got the Request Token!");
        System.out.println();

        System.out.println("Now go and authorize Scribe here:");
        String foo = service.getAuthorizationUrl(requestToken);
        System.out.println(foo);


        //going to the url manually here
        System.out.println("And paste the verifier here");
        System.out.print(">>");
        Verifier verifier = new Verifier(in.nextLine());
        System.out.println();

        // Trade the Request Token and Verfier for the Access Token
        System.out.println("Trading the Request Token for an Access Token...");
        Token accessToken = service.getAccessToken(requestToken, verifier);
        System.out.println("Got the Access Token!");
        System.out.println("(if your curious it looks like this: " + accessToken + " )");
        System.out.println();

        // Now let go and ask for a protected resource!
        System.out.println("Now we're going to access a protected resource...");
        OAuthRequest request = new OAuthRequest(Verb.GET, ACCOUNT_RESOURCE_URL);
        service.signRequest(accessToken, request);
        Response response = request.send();
        System.out.println("Got it! Lets see what we found...");
        System.out.println();
        System.out.println(response.getBody());

        System.out.println();
        System.out.println("Thats it man! Go and build something awesome with AWeber and Scribe! :)");
    }

}    

      

and

package aweber.test;

import org.scribe.builder.api.DefaultApi10a;
import org.scribe.model.Token;

public class AWeberApi extends DefaultApi10a
{
  private static final String AUTHORIZE_URL = "https://auth.aweber.com/1.0/oauth/authorize?oauth_token=%s";
  private static final String REQUEST_TOKEN_ENDPOINT = "https://auth.aweber.com/1.0/oauth/request_token";
  private static final String ACCESS_TOKEN_ENDPOINT = "https://auth.aweber.com/1.0/oauth/access_token";

  @Override
  public String getAccessTokenEndpoint()
  {
    return ACCESS_TOKEN_ENDPOINT;
  }

  @Override
  public String getRequestTokenEndpoint()
  {
    return REQUEST_TOKEN_ENDPOINT;
  }

  @Override
  public String getAuthorizationUrl(Token requestToken)
  {
    return String.format(AUTHORIZE_URL, requestToken.getToken());
  }
}    

      

+3


source to share





All Articles