php twitter sınıf artık çalışmıyor

1 Cevap php

Ben de bir kaç ay geri aldım bir açık kaynak twitter php sınıfını kullanıyorum, ve aniden, dün gece beni hataları atmaya başladı. Burada neler olduğunu görebilirsiniz:

www.campusmediawatch.org

Bu kimlik doğrulaması gerektiriyor ama ben kimliğini yok ve dün geceden beri aydır çalışıyor diyor. Herhangi bir fikir? İşte bu fonksiyonlar:

public function getFriends($id = null, $page = null)
{
	// build parameters
	$aParameters = array();
	if($page !== null) $aParameters['page'] = (int) $page;

	// build url
	$url = 'statuses/friends.xml';
	if($id !== null) $url = 'statuses/friends/'. urlencode($id) .'.xml';

	// do the call
	$response = $this->doCall($url, $aParameters, true, false);

	// convert into xml-object
	$xml = @simplexml_load_string($response);

	// validate
	if($xml == false) throw new TwitterException('invalid body');

	// init var
	$aUsers = array();

	// loop statuses
	foreach ($xml->user as $user) $aUsers[] = $this->userXMLToArray($user);

	// return
	return (array) $aUsers;
}

Ve burada kıvırmak çağrısı yapar kodu:

private function doCall($url, $aParameters = array(), $authenticate = false, $usePost = true)
{
	// redefine
	$url = (string) $url;
	$aParameters = (array) $aParameters;
	$authenticate = (bool) $authenticate;
	$usePost = (bool) $usePost;

	// build url
	$url = self::TWITTER_API_URL .'/'. $url;

	// validate needed authentication
	if($authenticate && ($this->getUsername() == '' || $this->getPassword() == '')) throw new TwitterException('No username or password was set.');

	// rebuild url if we don't use post
	if(!empty($aParameters) && !$usePost)
	{
		// init var
		$queryString = '';

		// loop parameters and add them to the queryString
		foreach($aParameters as $key => $value) $queryString .= '&'. $key .'='. urlencode(utf8_encode($value));

		// cleanup querystring
		$queryString = trim($queryString, '&');

		// append to url
		$url .= '?'. $queryString;
	}

	// set options
	$options[CURLOPT_URL] = $url;
	$options[CURLOPT_PORT] = self::TWITTER_API_PORT;
	$options[CURLOPT_USERAGENT] = $this->getUserAgent();
	$options[CURLOPT_FOLLOWLOCATION] = true;
	$options[CURLOPT_RETURNTRANSFER] = true;
	$options[CURLOPT_TIMEOUT] = (int) $this->getTimeOut();

	// should we authenticate?
	if($authenticate)
	{
		$options[CURLOPT_HTTPAUTH] = CURLAUTH_BASIC;
		$options[CURLOPT_USERPWD] = $this->getUsername() .':'. $this->getPassword();
	}

	// are there any parameters?
	if(!empty($aParameters) && $usePost)
	{
		$var = '';

		// rebuild parameters
		foreach($aParameters as $key => $value) $var .= '&'. $key .'='. urlencode($value);

		// set extra options
		$options[CURLOPT_POST] = true;
		$options[CURLOPT_POSTFIELDS] = trim($var, '&');

		// Probaly Twitter's webserver doesn't support the Expect: 100-continue header. So we reset it.
		$options[CURLOPT_HTTPHEADER] = array('Expect:');
	}

	// init
	$curl = curl_init();

	// set options
	curl_setopt_array($curl, $options);

	// execute
	$response = curl_exec($curl);
	$headers = curl_getinfo($curl);

	// fetch errors
	$errorNumber = curl_errno($curl);
	$errorMessage = curl_error($curl);

	// close
	curl_close($curl);

	// validate body
	$xml = @simplexml_load_string($response);
	if($xml !== false && isset($xml->error)) throw new TwitterException((string) $xml->error);

	// invalid headers
	if(!in_array($headers['http_code'], array(0, 200)))
	{
		// should we provide debug information
		if(self::DEBUG)
		{
			// make it output proper
			echo '<pre>';

			// dump the header-information
			var_dump($headers);

			// dump the raw response
			var_dump($response);

			// end proper format
			echo '</pre>';

			// stop the script
			exit;
		}

		// throw error
		throw new TwitterException(null, (int) $headers['http_code']);
	}

	// error?
	if($errorNumber != '') throw new TwitterException($errorMessage, $errorNumber);

	// return
	return $response;
}

1 Cevap

Ben bir wordpress eklentileri depo kullandığınız twitter kütüphanesini bulmak için başardı. Ben aynı biridir umuyoruz.

Ben bunu kullanarak hesabıma etrafında oynanan ve ben bunun iyi çalışma başardı. Ben bu hata sadece hesabınızın kullanıcı adı ve şifre (böylece twitter kimlik doğrulaması başarısız oldu) geçersiz ortaya görünmektedir çünkü denemek ve twitter hesabınıza oturum olabileceğini düşünüyorum

Yani denemek ve hesabınıza giriş yapın ve kullanıcı adınızı ve şifrenizi twitter sınıf başlatmak için kullanarak ne gibi aynı olduğundan emin olun.

örneğin

$twitter_api = new Twitter(<username>, <password>);