Hi,
I am having trouble, in fact absolutely no success, using my php
script create friendships. If you could find the error in my code/
give me a code that works I would greatly appreciate it!
In the code below the update function works perfectly but the
followers and create function don't work at all.
Below is my code:

$uname = $_POST['username'];
$upass = $_POST['pass'];

        include("./Twitter.class.php");


        $twitter = new Twitter();
        $twitter->username = $uname;
        $twitter->password = $upass;
        // Show public timeline
        echo $twitter->followers('xml');
        // Update your status
        echo $twitter->update('xml','Just increased my followers...');
        // Start following a user
        echo $twitter->create('xml','commonsensegov');

As you can see I am using twitter.class.php which I have included
below:
<?php

        /* This program is free software: you can redistribute it and/or
modify
     * it under the terms of the GNU General Public License as
published by
     * the Free Software Foundation, either version 3 of the License,
or
     * (at your option) any later version.

     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.

     * You should have received a copy of the GNU General Public
License
     * along with this program.  If not, see <http://www.gnu.org/
licenses/>.
     *
     * File:    Twitter.class.php
         * Author:  Brandon Trebitowski
         * Created: 02/26/2009
         * Version: 1.0
     */

        class Twitter {


                var $username='';
                var $password='';
                var $responseInfo=array();

                // Status Methods
                /*
                 * Returns the 20 most recent statuses from non-protected users
                 * who have set a custom user icon.  Does not require
authentication.
                 * Note that the public timeline is cached for 60 seconds so
requesting
                 * it more often than that is a waste of resources.
                 */
                function public_timeline($format) {
                        $request = 
'http://twitter.com/statuses/public_timeline.'.$format;
                        return $this->process($request);
                 }

                 /* Returns the 20 most recent statuses posted by the
authenticating
                  * user and that user's friends. This is the equivalent of 
/home on
the Web.
                  */
                function friends_timeline($format='xml',$count=20) {
                        $request = 
'http://twitter.com/statuses/friends_timeline.'.$format;
                        $postargs = "count=$count";
                        return $this->process($request,$postargs);
                }

                /* Returns the 20 most recent statuses posted from the
authenticating user.
                 * It's also possible to request another user's timeline via 
the id
parameter
                 * below. This is the equivalent of the Web /archive page for 
your
own user,
                 * or the profile page for a third party.
                 */
                function user_timeline($format='xml',$id=null) {
                        $request = 
'http://twitter.com/statuses/user_timeline.'.$format;
                        if($id) {
                                $postargs = "id=$id";
                                return $this->process($request,$postargs);
                        }
                        return $this->process($request);
                }

                /* Updates the authenticating user's status.  Requires the 
status
parameter
                 * specified below.  Request must be a POST.  A status update 
with
text identical
                 * to the authenticating user's current status will be ignored.
                 */
                function update($format = 'xml',$status){
                        $request = 
'http://twitter.com/statuses/update.'.$format;
                        $postargs = 'status='.urlencode($status);
                        return $this->process($request,$postargs);
                }

                /* Returns the 20 most recent @replies (status updates prefixed 
with
@username)
                 * for the authenticating user.
                 */
                function replies($format='xml') {
                        $request = 
'http://twitter.com/statuses/replies.'.$format;
                        return $this->process($request);
                }

                // User Methods
                /* Returns the authenticating user's friends, each with current
status inline.
                 * They are ordered by the order in which they were added as
friends. It's also
                 * possible to request another user's recent friends list via 
the id
parameter below.
                 */
                function friends($format='xml',$id=null,$page=1) {
                        $request = 
'http://twitter.com/statuses/friends.'.$format;
                        $postargs = "page=$page";
                        if($id) {
                                $postargs .= "&id=$id";
                        }
                        return $this->process($request,$postargs);
                }

                /* Returns the authenticating user's followers, each with 
current
status inline.
                 * They are ordered by the order in which they joined Twitter 
(this
is going to be changed).
                 */
                function followers($format='xml',$id=null,$page=1) {
                        $request = 
'http://twitter.com/statuses/followers.'.$format;
                        $postargs = "page=$page";
                        if($id) {
                                $postargs .= "&id=$id";
                        }
                        return $this->process($request,$postargs);
                }

                /* Returns extended information of a given user, specified by 
ID or
screen name
                 * as per the required id parameter below.  This information
includes design settings,
                 * so third party developers can theme their widgets according 
to a
given user's preferences.
                 * You must be properly authenticated to request the page of a
protected user.
                 */
                function show($format='xml',$id) {
                        $postargs = "";

                        $request = 
'http://twitter.com/users/show/'.$id.".$format";

                        return $this->process($request);
                }

                // Friendship Methods

                /* Befriends the user specified in the ID parameter as the
authenticating user.
                 * Returns the befriended user in the requested format when
successful.  Returns
                 * a string describing the failure condition when unsuccessful.
                 */
                function create($format='xml',$user_ID) {
                        $request = 
"http://twitter.com/friendships/create/$user_ID.
$format";
                        return $this->process($request);
                }

                /* Discontinues friendship with the user specified in the ID
parameter as the
                 * authenticating user.  Returns the un-friended user in the
requested format
                 * when successful.  Returns a string describing the failure
condition when unsuccessful.
                 */
                function destroy($format='xml',$user_ID) {
                        $request = 
"http://twitter.com/friendships/destroy/$user_ID.
$format";
                        return $this->process($request);
                }

                /* Tests if a friendship exists between two users.
                 */
                function exists($format='xml',$user_ID_a,$user_ID_b) {
                        $request = 
"http://twitter.com/friendships/exists.$format?user_a=
$user_ID_a&user_b=$user_ID_b";
                        return $this->process($request);
                }

                /* Old Processes a Twitter Request using cURL
                function process($url,$postargs=false){

                        // Initialize CURL
                        $ch = curl_init($url);

                        // Tell CURL we are doing a POST
                        curl_setopt ($ch, CURLOPT_POST, true);
                        // Give CURL the arguments in the POST

                        curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs);
                        // Set the username and password in the CURL call
                        curl_setopt($ch, CURLOPT_USERPWD,
                              $this->username.':'.$this->password);
                        // Set some cur flags (not too important)

                        curl_setopt($ch, CURLOPT_VERBOSE, 1);
                        curl_setopt($ch, CURLOPT_NOBODY, 0);
                        curl_setopt($ch, CURLOPT_HEADER, 0);
                        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                        // execute the CURL call
                        $response = curl_exec($ch);

                        // Get information about the response
                        $this->responseInfo=curl_getinfo($ch);
                        // Close the CURL connection
                        curl_close($ch);
                        // Make sure we received a response from Twitter
                        if(intval($this->responseInfo['http_code'])==200){
                                // Display the response from Twitter
                                return 'Success! <br /> ' . $response . '';
                        }else{
                                // Something went wrong
                                return "Error: " . 
$this->responseInfo['http_code'];
                        }
                }


 */
            function process($url,$postargs=false){

        $ch = curl_init($url);

        if($postargs !== false){
            curl_setopt ($ch, CURLOPT_POST, true);
            curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs);
        }

        if($this->username !== false && $this->password !== false)
            curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.
$this->password);

        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_NOBODY, 0);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


        $response = curl_exec($ch);

        $this->responseInfo=curl_getinfo($ch);
        curl_close($ch);


        if(intval($this->responseInfo['http_code'])==200){
            if(class_exists('SimpleXMLElement')){
                $xml = new SimpleXMLElement($response);
                return $xml;
            }else{
                return $response;
            }
        }else{
            return false;
        }
    }
}



?>

Reply via email to