6

In the salesforce REST API documentation, it tells how the system can give Oauth Tokens (https://code.exacttarget.com/apis-sdks/rest-api/v1/auth/requestToken.html ) But I don't see any documentation on how your system receives Oauth tokens when sending data.

I'm fairly new at combining OAuth with REST API, and so this is screwing with me a bit.

This code successfully gives me a token:

$exactTarget = 'https://auth.exacttargetapis.com/v1/requestToken';
$OAUTHarray = array('clientId' => 'SomethingGoesHere', 'clientSecret' => 'sshhhNowThatisASecret');

$options = array(
        'http' => array(
                'method'  => 'POST',
                'content' => json_encode( $OAUTHarray ),
                'header'=>  "Content-Type: application/json\r\n" .
                "Accept: application/json\r\n"
        )
);

$context  = stream_context_create( $options );
$result = file_get_contents( $exactTarget, false, $context );
$response = json_decode( $result );

I've outputted the data to make sure I was getting a valid token (and I was.) However, when trying to actually run commands, I can't get the tokens accepted.

This is my current follow-up code:

$exactTarget = 'https://www.exacttargetapis.com/contacts/v1/contacts';
$values = array ('name' => '' . $name, 'value' => '' . $email);
$items = array ('values' => $values);
$attributeSet = array ('items' => $items);
$dataset01 = array('contactKey' => '' . $email, 'contactId' => null, 'attributeSets' => $attributeSet);

$valuesArray = array($lastname, $firstname);
$itemsArray = array('values' => $valuesArray);
$dataset02 = array('name' => 'Email Democgraphics', 'items' => $itemsArray);
$finalData = array($dataset01, $dataset02);

if ($debug == true){
    echo "<script>alert(" . $response->{"accessToken"} . ")</script>";
}

$options = array(
        'http' => array(
                'method'  => 'POST',
                'content' => json_encode( $finalData ),
                'header'=>  "Content-Type: application/json\r\n" .
                "Accept: application/json\r\n" .
                "Authorization: Bearer " . $response->{"accessToken"} . "\r\n"
                
        )
        
);

$context  = stream_context_create( $options );
$result = file_get_contents( $exactTarget, false, $context );
$response2 = json_decode( $result );

So, what's wrong here, or what needs to be added?

6
  • What $result is being returned? Also, dump the response headers with var_dump($http_response_header); and add them to your question and it should be easier to answer. Commented Feb 3, 2015 at 4:51
  • @JoshuaPeterson did you ever figure this out? I'm having the same problem Commented May 2, 2019 at 21:29
  • @garek007 Unfortunately, no. Commented May 2, 2019 at 22:41
  • are you using guzzle? Commented May 3, 2019 at 14:02
  • @garek007 It's been about 2 years since I worked the job that prompted that question, I can barely remember which frameworks I was using. Sorry. I just know I was never able to pull it off though. Commented May 3, 2019 at 16:23

1 Answer 1

1

I would suggest using the Fuel SDK, it does the with heavy lifting for you.

https://github.com/ExactTarget/FuelSDK-PHP

You can update the config file to include your id and secret, and it will take it from there.

1
  • Tempting as using the fuel sdk instead would be, for internal reasons, sticking to REST is preferred. Commented Feb 3, 2015 at 20:24

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.