Twitter Single Sign On OAuth PHP,无需第三方 API


Twitter Single Sign On OAuth PHP without third party API

我被赋予了一个使用Twitter开发单点登录系统的任务,我不允许使用第三方API。但是,我可以使用CURL和PHP。最好的方法是什么。到目前为止,我有这个,但它不起作用。它输出错误"无法验证 oauth 签名和令牌"

我想得到一些关于如何做到这一点的建议。

$fields = array(
            'oauth_callback'        => 'http://www.mydomain.co.uk/redirect.php'
        );
        //url-ify the data for the POST
        foreach( $fields as $key=>$value ) {
            $fields_string .= $key.'='.$value.'&'; 
        }
        rtrim( $fields_string, "" );
        echo $fields_string;
        $curl = curl_init( "https://api.twitter.com/oauth/request_token" );
        //Send auth data to twiter
        curl_setopt( $curl, CURLOPT_POST, count( $fields ) );
        curl_setopt( $curl, CURLOPT_POSTFIELDS, $fields_string );
        //Will return json object
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
        $result = curl_exec($curl);
        //debugger
        if( $debug ){
            if( ! curl_errno( $curl ) ) {
                $info = curl_getinfo( $curl );
                echo 'Took ' . $info[ 'total_time' ] . ' seconds to send a request to ' . $info[ 'url' ];
            }
        }

        curl_close( $curl );
        echo $result;

我建议使用PEAR HTTP_OAUTH库。 没有理由重新发明轮子。