Is het mogelijk dat ik tweets kan plaatsen via mijn site? Ik wil dus via de admin tweets kunnen plaatsen op het twitter account van de site.
Tweeten via mijn site
Ja, waarschijnlijk wel.
Misschien even een api zoeken?
Misschien even een api zoeken?
Heb ik ok vaak naar gezocht, schijnt niet te kunnen.
Habb*ies*NL
Heeft dat wel.
Heeft dat wel.
Dat kan, maar de oude methode doet het niet meer. Misschien moet je het aan Kerem/Luukvdo vragen die hadden het volgensmij.
Danderend schreef:Ja, waarschijnlijk wel.
Misschien even een api zoeken?
Kon ik niet vinden.
Reinier schreef:Heb ik ok vaak naar gezocht, schijnt niet te kunnen.
Ik kon het ook niet vinden, maar het kan denk ik wel.
Nickjexx schreef:Habb*ies*NL
Heeft dat wel.
Ok.
Shahiem schreef:EDIT:// Ik heb een uitleg van Luuk(vdo) gekregen. Hier kan daarom een slot op.Dat kan, maar de oude methode doet het niet meer. Misschien moet je het aan Kerem/Luukvdo vragen die hadden het volgensmij.
Bedankt. Ik zal het eens vragen.

Zou je mij die ook kunnen sturen? 

Twitter heeft hier gewoon een kant en klaar systeem voor is slechts een kleine HTML code, heb m zelf ook vind de API onnodig.
Je bedoelt de status script, maar dan moet je volgensmij ingelogd zijn.
Webgate schreef:Quote:Twitter heeft hier gewoon een kant en klaar systeem voor is slechts een kleine HTML code, heb m zelf ook vind de API onnodig.
Dat is inderdaad iets heel anders. Ik zet het wel even hier in dit topic:
Eerst log je hier in met het twitter account dat de berichten gaat plaatsen. Dan maak je hier een app aan. De meeste gegevens spreken voor zich. Bij Callback url kan je gewoon de url van je site invullen. Default access type moet je op Read & Write zetten. Als je dat gedaan hebt krijg je een Consumer Key en een Consumer Secret. Deze moet je even ergens neerzetten. Dan klik je op My Access Token aan de rechterkant van de pagina. Je krijgt dan een Access Token en een Access Token Secret. Deze moet je ook ergens neerzetten.
Dan zet je de volgende code in een bestand en slaat dat op als twitterapi.php
Spoiler tonen
[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/**
* tmhOAuth
*
* An OAuth 1.0A library written in PHP.
* The library supports file uploading using multipart/form as well as general
* REST requests. OAuth authentication is sent using the an Authorization Header.
*
* @author themattharris
* @version 0.3
*
* 28 September 2010
*/[/COLOR]
[URL="http://www.php.net/class"]class[/URL] tmhOAuth [COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]/**
* Creates a new tmhOAuth object
*
* @param string $config, the configuration to use for this request
*/[/COLOR]
[COLOR= #007700]function[/COLOR] __construct[COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auto_fixed_time [COLOR= #007700]=[/COLOR] false[COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// for ease of testing[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/file_exists"]file_exists[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/dirname"]dirname[/URL][COLOR= #007700]([/COLOR]__FILE__[COLOR= #007700]).[/COLOR][COLOR= #DD0000]/_account.php[/COLOR][COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]_account.php[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700]) &&[/COLOR] [COLOR= #0000BB]$config[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_key[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]hier_consumer_key[/COLOR][COLOR= #007700]) :[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]hier_user_token[/COLOR][COLOR= #007700])[/COLOR]
[COLOR= #0000BB]$config[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]test_with_user[/COLOR][COLOR= #007700]]);[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #0000BB]$config[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$config[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_accounts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]test[/COLOR][COLOR= #007700]]);
endif;
}[/COLOR]
[COLOR= #FF8000]// default configuration options[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR]
[URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
[COLOR= #DD0000]consumer_key[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bladie[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]consumer_secret[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]blaat[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]user_token[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bla[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]user_secret[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]bla[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]use_ssl[/COLOR] [COLOR= #007700]=>[/COLOR] true[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]host[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]api.twitter.com[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]debug[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]force_nonce[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]nonce[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// used for checking signatures. leave as false for auto[/COLOR]
[COLOR= #DD0000]force_timestamp[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]timestamp[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// used for checking signatures. leave as false for auto[/COLOR]
[COLOR= #DD0000]oauth_version[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]1.0[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #FF8000]// you probably dont want to change any of these curl values[/COLOR]
[COLOR= #DD0000]curl_connecttimeout[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]30[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]curl_timeout[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #FF8000]// for security you may want to set this to TRUE. If you do you need
// to install the servers certificate in your local certificate store.[/COLOR]
[COLOR= #DD0000]curl_ssl_verifypeer[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]curl_followlocation[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR] [COLOR= #FF8000]// whether to follow redirects or not
// streaming API[/COLOR]
[COLOR= #DD0000]is_streaming[/COLOR] [COLOR= #007700]=>[/COLOR] false[COLOR= #007700],[/COLOR]
[COLOR= #DD0000]streaming_eol[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]"rn"[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #DD0000]streaming_metrics_interval[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]60[/COLOR][COLOR= #007700],
),[/COLOR]
[COLOR= #0000BB]$config[/COLOR]
[COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Generates a random OAuth nonce.
* If force_nonce is true a nonce is not generated and the value in the configuration will be retained.
*
* @param string $length how many characters the nonce should be before MD5 hashing. default 12
* @param string $include_time whether to include time at the beginning of the nonce. default true
* @return void
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] create_nonce[COLOR= #007700]([/COLOR][COLOR= #0000BB]$length[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]12[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$include_time[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700]) {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_nonce[/COLOR][COLOR= #007700]] ==[/COLOR] false[COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$sequence[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]9[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]A[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]Z[/COLOR][COLOR= #007700]),[/COLOR] [URL="http://www.php.net/range"]range[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]a[/COLOR][COLOR= #007700],[/COLOR][COLOR= #DD0000]z[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]>[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]) ?[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]) :[/COLOR] [COLOR= #0000BB]$length[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/shuffle"]shuffle[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]nonce[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/microtime"]microtime[/URL][COLOR= #007700]() .[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$sequence[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$length[/COLOR][COLOR= #007700]));
}
}[/COLOR]
[COLOR= #FF8000]/**
* Generates a timestamp.
* If force_timestamp is true a nonce is not generated and the value in the configuration will be retained.
*
* @return void
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] create_timestamp[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]] = ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_timestamp[/COLOR][COLOR= #007700]] ==[/COLOR] false [COLOR= #007700]?[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() :[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]]);
}[/COLOR]
[COLOR= #FF8000]/**
* Encodes the string or array passed in a way compatible with OAuth.
* If an array is passed each array value will will be encoded.
*
* @param mixed $data the scalar or array to encode
* @return $data encoded in a way compatible with OAuth
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_array"]is_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/array_map"]array_map[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]safe_encode[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_scalar"]is_scalar[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/return"]return[/URL] str_ireplace[COLOR= #007700]([/COLOR]
[URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]+[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]%7E[/COLOR][COLOR= #007700]),[/COLOR]
[URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000] [/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]~[/COLOR][COLOR= #007700]),[/COLOR]
[URL="http://www.php.net/rawurlencode"]rawurlencode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])
);
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000][/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #FF8000]/**
* Decodes the string or array from its URL encoded form
* If an array is passed each array value will will be decoded.
*
* @param mixed $data the scalar or array to decode
* @return $data decoded from the URL encoded form
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_array"]is_array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/array_map"]array_map[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]safe_decode[/COLOR][COLOR= #007700]),[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/is_scalar"]is_scalar[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/rawurldecode"]rawurldecode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000][/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #FF8000]/**
* Returns an array of the standard OAuth parameters.
*
* @return array all required OAuth parameters, safely encoded
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] get_defaults[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$defaults[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
[COLOR= #DD0000]oauth_version[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_version[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #DD0000]oauth_nonce[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]nonce[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #DD0000]oauth_timestamp[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #DD0000]oauth_consumer_key[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_key[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #DD0000]oauth_signature_method[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #DD0000]HMAC-SHA1[/COLOR][COLOR= #007700],
);[/COLOR]
[COLOR= #FF8000]// include the user token if it exists[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]] )[/COLOR]
[COLOR= #0000BB]$defaults[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_token[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_token[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #FF8000]// safely encode[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$defaults[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$_defaults[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700])] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$_defaults[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Extracts and decodes OAuth parameters from the passed string
*
* @param string $body the response body from an OAuth flow method
* @return array the response body safely decoded to an array of key => values
*/[/COLOR]
[COLOR= #007700]function[/COLOR] extract_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$body[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$kvs[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$body[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$decoded[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$kvs[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$kv[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]=[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_decode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #0000BB]$decoded[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]]] =[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$decoded[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Prepares the HTTP method for use in the base string by converting it to
* uppercase.
*
* @param string $method an HTTP method such as GET or POST
* @return void value is stored to a class variable
* @author themattharris
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_method[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strtoupper"]strtoupper[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Prepares the URL for use in the base string by ripping it apart and
* reconstructing it.
*
* @param string $url the request URL
* @return void value is stored to a class variable
* @author themattharris
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$parts[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/parse_url"]parse_url[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]= @[/COLOR][COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]port[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]scheme[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$host[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$path[/COLOR] [COLOR= #007700]= @[/COLOR][COLOR= #0000BB]$parts[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]path[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$port[/COLOR] or [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]https[/COLOR][COLOR= #007700]) ?[/COLOR] [COLOR= #DD0000]443[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000]80[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]https[/COLOR] [COLOR= #007700]&&[/COLOR] [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]!=[/COLOR] [COLOR= #DD0000]443[/COLOR][COLOR= #007700])
|| ([/COLOR][COLOR= #0000BB]$scheme[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #DD0000]http[/COLOR] [COLOR= #007700]&&[/COLOR] [COLOR= #0000BB]$port[/COLOR] [COLOR= #007700]!=[/COLOR] [COLOR= #DD0000]80[/COLOR][COLOR= #007700])) {[/COLOR]
[COLOR= #0000BB]$host[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"$host:$port"[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"$scheme://$host$path"[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Prepares all parameters for the base string and request.
* Multipart parameters are ignored as they are not defined in the specification,
* all other types of parameter are encoded for compatibility with OAuth.
*
* @param array $params the parameters for the request
* @return void prepared values are stored in class variables
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #FF8000]// do not encode multipart parameters, leave them alone[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$params[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();
}[/COLOR]
[COLOR= #FF8000]// signing parameters are request parameters + OAuth default parameters[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array_merge"]array_merge[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700](), ([/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700])[/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// Remove oauth_signature if present
// Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]])) {[/COLOR]
[URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]]);
}[/COLOR]
[COLOR= #FF8000]// Parameters are sorted by name, using lexicographical byte value ordering.
// Ref: Spec: 9.1.1 (1)[/COLOR]
[URL="http://www.php.net/uksort"]uksort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params[COLOR= #007700],[/COLOR] [COLOR= #DD0000]strcmp[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// encode. Also sort the signed parameters from the POST parameters[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$v[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]"{$k}={$v}"[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]// auth params = the default oauth params which are present in our collection of signing params[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params [COLOR= #007700]=[/COLOR] array_intersect_key[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]])) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]];[/COLOR]
[URL="http://www.php.net/unset"]unset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_callback[/COLOR][COLOR= #007700]]);
}[/COLOR]
[COLOR= #FF8000]// request_params is already set if were doing multipart, if not we need to set them now[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]])[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] array_diff_key[COLOR= #007700]([/COLOR][COLOR= #0000BB]$_signing_params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]get_defaults[COLOR= #007700]());[/COLOR]
[COLOR= #FF8000]// create the parameter part of the base string[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Prepares the OAuth signing key
*
* @return void prepared signing key is stored in a class variables
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_signing_key[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_key [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]consumer_secret[/COLOR][COLOR= #007700]]) .[/COLOR] [COLOR= #DD0000]&[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]user_secret[/COLOR][COLOR= #007700]]);
}[/COLOR]
[COLOR= #FF8000]/**
* Prepare the base string.
* Ref: Spec: 9.1.3 ("Concatenate Request Elements")
*
* @return void prepared base string is stored in a class variables
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_base_string[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$base[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method[COLOR= #007700],[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url[COLOR= #007700],[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_params
[COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]base_string [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$base[/COLOR][COLOR= #007700]));
}[/COLOR]
[COLOR= #FF8000]/**
* Prepares the Authorization header
*
* @return void prepared authorization header is stored in a class variables
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] prepare_auth_header[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]headers [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/uksort"]uksort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700],[/COLOR] [COLOR= #DD0000]strcmp[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$kv[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]"{$k}="{$v}""[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_header [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]OAuth [/COLOR] [COLOR= #007700].[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000], [/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$kv[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]headers[COLOR= #007700][] =[/COLOR] [COLOR= #DD0000]Authorization: [/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_header[COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Signs the request and adds the OAuth signature. This runs all the request
* parameter preparation methods.
*
* @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
* @param string $url the request URL without query string parameters
* @param array $params the request parameters as an array of key=value pairs
* @param string $useauth whether to use authentication when making the request.
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] sign[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_method[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_params[COLOR= #007700]([/COLOR][COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// we dont sign anything is were not using auth[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_base_string[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_signing_key[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auth_params[COLOR= #007700][[/COLOR][COLOR= #DD0000]oauth_signature[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR]
[URL="http://www.php.net/base64_encode"]base64_encode[/URL][COLOR= #007700]([/COLOR]
hash_hmac[COLOR= #007700]([/COLOR]
[COLOR= #DD0000]sha1[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]base_string[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]signing_key[COLOR= #007700],[/COLOR] true
[COLOR= #007700])));[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]prepare_auth_header[COLOR= #007700]();
}
}[/COLOR]
[COLOR= #FF8000]/**
* Make an HTTP request using this library. This method doesnt return anything.
* Instead the response should be inspected directly.
*
* @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
* @param string $url the request URL without query string parameters
* @param array $params the request parameters as an array of key=value pairs
* @param string $useauth whether to use authentication when making the request. Default true.
* @param string $multipart whether this request contains multipart data. Default false
*/[/COLOR]
[COLOR= #007700]function[/COLOR] request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]=[/COLOR]false[COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]create_nonce[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]create_timestamp[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]sign[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]curlit[COLOR= #007700]([/COLOR][COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Make an HTTP request using this library. This method is different to request
* because on a 401 error it will retry the request.
*
* When a 401 error is returned it is possible the timestamp of the client is
* too different to that of the API server. In this situation it is recommended
* the request is retried with the OAuth timestamp set to the same as the API
* server. This method will automatically try that technique.
*
* This method doesnt return anything. Instead the response should be
* inspected directly.
*
* @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
* @param string $url the request URL without query string parameters
* @param array $params the request parameters as an array of key=value pairs
* @param string $useauth whether to use authentication when making the request. Default true.
* @param string $multipart whether this request contains multipart data. Default false
*/[/COLOR]
[COLOR= #007700]function[/COLOR] auto_fix_time_request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700]=[/COLOR]true[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]=[/COLOR]false[COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// if were not doing auth the timestamp isnt important[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// some error that isnt a 401[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]code[/COLOR][COLOR= #007700]] !=[/COLOR] [COLOR= #0000BB]401[/COLOR][COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// some error that is a 401 but isnt because the OAuth token and signature are incorrect
// TODO: this check is horrid but helps avoid requesting twice when the username and password are wrong[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/stripos"]stripos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]response[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #DD0000]password[/COLOR][COLOR= #007700]) !==[/COLOR] false[COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// force the timestamp to be the same as the Twitter servers, and re-request[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]auto_fixed_time [COLOR= #007700]=[/COLOR] true[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]force_timestamp[/COLOR][COLOR= #007700]] =[/COLOR] true[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]timestamp[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/strtotime"]strtotime[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]headers[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #DD0000]date[/COLOR][COLOR= #007700]]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$useauth[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$multipart[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Make a long poll HTTP request using this library. This method is
* different to the other request methods as it isnt supposed to disconnect
*
* Using this method expects a callback which will receive the streaming
* responses.
*
* @param string $method the HTTP method being used. e.g. POST, GET, HEAD etc
* @param string $url the request URL without query string parameters
* @param array $params the request parameters as an array of key=value pairs
* @param string $callback the callback function to stream the buffer to.
*/[/COLOR]
[COLOR= #007700]function[/COLOR] streaming_request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]=[/COLOR][URL="http://www.php.net/array"]array[/URL][COLOR= #007700](),[/COLOR] [COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #DD0000][/COLOR][COLOR= #007700]) {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]) ) {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/function_exists"]function_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$callback[/COLOR][COLOR= #007700]) ) {[/COLOR]
[URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$callback[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]start[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]start[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]is_streaming[/COLOR][COLOR= #007700]] =[/COLOR] true[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request[COLOR= #007700]([/COLOR][COLOR= #0000BB]$method[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Handles the updating of the current Streaming API metrics.
*/[/COLOR]
[COLOR= #007700]function[/COLOR] update_metrics[COLOR= #007700]() {[/COLOR]
[COLOR= #0000BB]$now[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]();[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] +[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]]) >[/COLOR] [COLOR= #0000BB]$now[/COLOR][COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL] false[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tps[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/round"]round[/URL][COLOR= #007700]( ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]])[/COLOR] / [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bps[/COLOR][COLOR= #007700]] =[/COLOR] [URL="http://www.php.net/round"]round[/URL][COLOR= #007700]( ([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]] -[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]])[/COLOR] / [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_metrics_interval[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_bytes[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]last_tweets[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]interval_start[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$now[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Utility function to create the request URL in the requested format
*
* @param string $request the API method without extension
* @param string $format the format of the response. Default json. Set to an empty string to exclude the format
* @return string the concatenation of the host, API version, API method and format
*/[/COLOR]
[COLOR= #007700]function[/COLOR] url[COLOR= #007700]([/COLOR][COLOR= #0000BB]$request[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$format[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #DD0000]json[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$format[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$format[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000]".$format"[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$proto[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]use_ssl[/COLOR][COLOR= #007700]] ?[/COLOR] [COLOR= #DD0000]https:/[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000]http:/[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// backwards compatibility with v0.1[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]v[/COLOR][COLOR= #007700]]))[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]/[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]v[/COLOR][COLOR= #007700]];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]/[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]([/COLOR]
[COLOR= #0000BB]$proto[/COLOR][COLOR= #007700],[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]host[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #0000BB]$request[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$format[/COLOR]
[COLOR= #007700]));
}[/COLOR]
[COLOR= #FF8000]/**
* Utility function to parse the returned curl headers and store them in the
* class array variable.
*
* @param object $ch curl handle
* @param string $header the response headers
* @return the string length of the header
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlHeader[COLOR= #007700]([/COLOR][COLOR= #0000BB]$ch[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$header[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strpos"]strpos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]:[/COLOR][COLOR= #007700])[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]) ) {[/COLOR]
[COLOR= #0000BB]$key[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]-[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]_[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/strtolower"]strtolower[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700])));[/COLOR]
[COLOR= #0000BB]$value[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/trim"]trim[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]response[COLOR= #007700][[/COLOR][COLOR= #DD0000]headers[/COLOR][COLOR= #007700]][[/COLOR][COLOR= #0000BB]$key[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]$value[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$header[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]/**
* Utility function to parse the returned curl buffer and store them until
* an EOL is found. The buffer for curl is an undefined size so we need
* to collect the content until an EOL is found.
*
* This function calls the previously defined streaming callback method.
*
* @param object $ch curl handle
* @param string $data the current curl buffer
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlWrite[COLOR= #007700]([/COLOR][COLOR= #0000BB]$ch[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$l[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/strpos"]strpos[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$data[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_eol[/COLOR][COLOR= #007700]]) ===[/COLOR] false[COLOR= #007700]) {[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$l[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$buffered[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_eol[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$data[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$content[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$buffered[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]tweets[/COLOR][COLOR= #007700]]++;[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]metrics[COLOR= #007700][[/COLOR][COLOR= #DD0000]bytes[/COLOR][COLOR= #007700]] +=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/function_exists"]function_exists[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]]))[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$metrics[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]update_metrics[COLOR= #007700]();[/COLOR]
[COLOR= #0000BB]$stop[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/call_user_func"]call_user_func[/URL][COLOR= #007700]([/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]streaming_callback[/COLOR][COLOR= #007700]],[/COLOR]
[COLOR= #0000BB]$content[/COLOR][COLOR= #007700],[/COLOR]
[URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$content[/COLOR][COLOR= #007700]),[/COLOR]
[COLOR= #0000BB]$metrics[/COLOR]
[COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]buffer [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$buffered[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$stop[/COLOR][COLOR= #007700])[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$l[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]/**
* Makes a curl request. Takes no parameters as all should have been prepared
* by the request method
*
* @return void response data is stored in the class variable response
*/[/COLOR]
[URL="http://www.php.net/private"]private[/URL] [COLOR= #007700]function[/COLOR] curlit[COLOR= #007700]() {[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](@[/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]prevent_request[/COLOR][COLOR= #007700]])[/COLOR]
[URL="http://www.php.net/return"]return[/URL][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]// method handling[/COLOR]
[URL="http://www.php.net/switch"]switch[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]method[COLOR= #007700]) {
case[/COLOR] [COLOR= #DD0000]GET[/COLOR][COLOR= #007700]:[/COLOR]
[COLOR= #FF8000]// GET request so convert the parameters to a querystring[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]( ![/COLOR] [URL="http://www.php.net/empty"]empty[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params[COLOR= #007700])) {[/COLOR]
[URL="http://www.php.net/foreach"]foreach[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700]) {[/COLOR]
[COLOR= #FF8000]// Multipart params havent been encoded yet.
// Not sure why you would do a multipart GET but anyway, heres the support for it[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]multipart[/COLOR][COLOR= #007700]]) {[/COLOR]
[COLOR= #0000BB]$params[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$k[/COLOR][COLOR= #007700]) .[/COLOR] [COLOR= #DD0000]=[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]safe_encode[COLOR= #007700]([/COLOR][COLOR= #0000BB]$v[/COLOR][COLOR= #007700]);
}[/COLOR] [URL="http://www.php.net/else"]else[/URL] [COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$params[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$k[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]=[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$v[/COLOR][COLOR= #007700];
}
}[/COLOR]
[COLOR= #0000BB]$qs[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/implode"]implode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]&[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$params[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$qs[/COLOR][COLOR= #007700]) >[/COLOR] [COLOR= #0000BB]0[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url [COLOR= #007700].[/COLOR] [COLOR= #DD0000]?[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$qs[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]url[COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]request_params [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();
}[/COLOR]
[URL="http://www.php.net/break"]break[/URL][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]// configure curl[/COLOR]
[COLOR= #0000BB]$c[/COLOR] [COLOR= #007700]=[/COLOR] curl_init[COLOR= #007700]();[/COLOR]
curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_USERAGENT[COLOR= #007700],[/COLOR] [COLOR= #DD0000]"themattharris HTTP Client"[/COLOR][COLOR= #007700]);[/COLOR]
curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_CONNECTTIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_connecttimeout[/COLOR][COLOR= #007700]]);[/COLOR]
curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_TIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_timeout[/COLOR][COLOR= #007700]]);[/COLOR]
curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_RETURNTRANSFER[COLOR= #007700],[/COLOR] TRUE[COLOR= #007700]);[/COLOR]
curl_setopt[COLOR= #007700]([/COLOR][COLOR= #0000BB]$c[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_SSL_VERIFYPEER[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$this[/COLOR][COLOR= #007700]->[/COLOR]config[COLOR= #007700][[/COLOR][COLOR= #DD0000]curl_ssl_verifypeer[/COIk ben de laatste tijd veel met twitter bezig, als je me toevoegd op msn kan ik je wel helpen het te installeren, het kan wel en is vrij simpel, zolang je maar weet wat je moet doen

Wiitse schreef:Het is dus gelukt?Ik heb een uitleg van Luuk(vdo) gekregen. Hier kan daarom een slot op.

Luukvdo schreef:Jeps.Het is dus gelukt?Eerdere citaten tonen
Wiitse schreef:Ik heb een uitleg van Luuk(vdo) gekregen. Hier kan daarom een slot op.

Klopt mijn excuses, dit geeft dus toegang om via jou website in het adminpaneel (bijv) een tweet te plaatsen naar Twitter ,toch?
Eleky schreef:Ik zal je aanspreken op msnIk ben de laatste tijd veel met twitter bezig, als je me toevoegd op msn kan ik je wel helpen het te installeren, het kan wel en is vrij simpel, zolang je maar weet wat je moet doen
