Mon serveur ne supporte pas cURL.Twitter Oauth via PHP SANS cURL
Je veux mettre à jour mon statut via php.
Comment faire cela sans cURL?
Encore une fois: SANS CURL!
Mon serveur ne supporte pas cURL.Twitter Oauth via PHP SANS cURL
Je veux mettre à jour mon statut via php.
Comment faire cela sans cURL?
Encore une fois: SANS CURL!
Voici comment vous pouvez tweeter sans utiliser cURL avec PHP. Nous avons deux options-
Avec contexte de flux
fonction Php stream_context_create a la magie. Il crée et retourne un contexte de flux avec toutes les options passées.
<?php
set_time_limit(0);
$username = 'username';
$password= 'WHATEVER';
$message='YOUR NEW STATUS';
function tweet($message, $username, $password)
{
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => sprintf("Authorization: Basic %s\r\n", base64_encode($username.':'.$password)).
"Content-type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query(array('status' => $message)),
'timeout' => 5,
),
));
$ret = file_get_contents('http://twitter.com/statuses/update.xml', false, $context);
return false !== $ret;
}
echo tweet($message, $username, $password);
?>
Avec prise
programmationPHP a une API de programmation socket très capable. Ces fonctions de socket incluent presque tout ce dont vous avez besoin pour une communication client-serveur basée sur socket via TCP/IP. fsockopen ouvre une connexion de socket de domaine Internet ou Unix.
<?php
$username = 'username';
$password= 'WHATEVER';
$message='YOUR NEW STATUS';
$out="POST http://twitter.com/statuses/update.json HTTP/1.1\r\n"
."Host: twitter.com\r\n"
."Authorization: Basic ".base64_encode ("$username:$password")."\r\n"
."Content-type: application/x-www-form-urlencoded\r\n"
."Content-length: ".strlen ("status=$message")."\r\n"
."Connection: Close\r\n\r\n"
."status=$msg";
$fp = fsockopen ('twitter.com', 80);
fwrite ($fp, $out);
fclose ($fp);
?>
glanées ici: http://www.motyar.info/2010/02/update-twitter-status-with-php-nocurl.html
espoir SITS aide.
Si vous avez besoin de plus d'aide, faites-le moi savoir que je suis un programmeur php moi-même. grâce
PK
Vous pouvez le faire en utilisant le oauth pecl extension. Voir here pour plus de détails. EDIT: vous devez installer l'extension pecl
<?php
/*
* using file_get_contents
*/
$key = '';
$secret = '';
$api_endpoint = 'https://api.twitter.com/1.1/search/tweets.json?q=news'; // endpoint must support "Application-only authentication"
// request token
$basic_credentials = base64_encode($key.':'.$secret);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Authorization: Basic '.$basic_credentials."\r\n".
"Content-type: application/x-www-form-urlencoded;charset=UTF-8\r\n",
'content' => 'grant_type=client_credentials'
)
);
$context = stream_context_create($opts);
// send request
$pre_token = file_get_contents('https://api.twitter.com/oauth2/token', false, $context);
$token = json_decode($pre_token, true);
if (isset($token["token_type"]) && $token["token_type"] == "bearer"){
$opts = array('http' =>
array(
'method' => 'GET',
'header' => 'Authorization: Bearer '.$token["access_token"]
)
);
$context = stream_context_create($opts);
$data = file_get_contents($api_endpoint, false, $context);
print $data;
}
?>
Comment câbler votre code pour poster un tweet? J'ai changé le point de terminaison à https://api.twitter.com/1.1/statuses/update.json?status=Testing et cela m'amène à obtenir une 400 Bad Request. D'après ce que les docs disent, cela signifie probablement que je ne suis pas authentifié pour poster un tweet. Je crois que vous avez besoin de plus d'informations d'authentification que juste la clé et le secret? –
Bonne réponse avec des explications claires et des exemples. Nice, +1. –