Just glancing at the code it looks like create() is using GET instead of
POST.

On Mon, Jun 15, 2009 at 14:28, Matt Sanford <m...@twitter.com> wrote:

>
> Hi there,
>
>    Thanks for including code, but the most helpful thing would be the error
> message you're getting. Looking over several pages of code it is a little
> tough to pick something out but the body of the response you get should give
> a reason why the method failed. Please collect that and let us know.
>
> Thanks;
>  – Matt Sanford / @mzsanford
>     Twitter Dev
>
>
> On Jun 14, 2009, at 11:07 PM, cbrechb...@gmail.com wrote:
>
>
>> 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;
>>       }
>>   }
>> }
>>
>>
>>
>> ?>
>>
>
>


-- 
Abraham Williams | Community | http://web608.org
Hacker | http://abrah.am | http://twitter.com/abraham
Project | http://fireeagle.labs.poseurtech.com
This email is: [ ] blogable [x] ask first [ ] private.

Reply via email to