0

リンクインから追加のアクセス許可を要求しようとすると、基本的なアクセス許可を除いて、ダイアログにアクセス許可のリストが表示されません。解決策を教えてください。アクセス許可を urlencoding してみましたが、まだ応答がありません。これが私のコードです:「Linkedinでサインアップ」ボタンをクリックしてこの関数を呼び出しています。

public function linkedinaccessAction()
{
    $this->_helper->layout->disableLayout();
    $this->_helper->viewRenderer->setNoRender();

    $scope = 'r_basicprofile+r_emailaddress+r_network+r_contactinfo';

    $options = array(
                            'version' => '1.0',
                            'siteUrl' => 'http://localhost/project/development/',
                            'callbackUrl' => 'http://localhost/project/development/signup/linkedinaccess',
                            'requestTokenUrl' => 'https://api.linkedin.com/uas/oauth/requestToken?scope=' . $scope,
                            'userAuthorizationUrl' => 'https://api.linkedin.com/uas/oauth/authorize',
                            'accessTokenUrl' => 'https://api.linkedin.com/uas/oauth/accessToken',
                            'consumerKey' => 'myconsumerkey',
                            'consumerSecret' => 'myconsumersecret'
                        );

    $consumer = new Zend_Oauth_Consumer( $options );


    if (!isset($_SESSION ['LINKEDIN_ACCESS_TOKEN'])){
        if(! empty ( $_GET )){
            //consumer = new Zend_Oauth_Consumer( $options );
            $accessToken = $consumer->getAccessToken ( $_GET, unserialize ( $_SESSION ['LINKEDIN_REQUEST_TOKEN'] ) ); 
            echo $accessToken;
            $_SESSION ['LINKEDIN_ACCESS_TOKEN'] = serialize ( $accessToken );
        }else{
            $requestToken = $consumer->getRequestToken();
            $_SESSION ['LINKEDIN_REQUEST_TOKEN'] = serialize ( $requestToken );
            $consumer->redirect();
        }
    }else{
        $accessToken = unserialize ( $_SESSION ['LINKEDIN_ACCESS_TOKEN'] ); 

        // Use HTTP Client with built-in OAuth request handling
        $client = $accessToken->getHttpClient($options);

        // Set LinkedIn URI
        $client->setUri('https://api.linkedin.com/v1/people/~');
        // Set Method (GET, POST or PUT)
        $client->setMethod(Zend_Http_Client::GET);
        // Get Request Response
        $response = $client->request();

        // Get the XML containing User's Profile
        $content =  $response->getBody();
        print_r($content);
    }

}

ありがとうございました。

4

1 に答える 1

1

厳密な検索の後、最終的にこのLinkedin Postから解決策を得ました

getRequestToken 呼び出しの一部として、リンクされたアクセス許可を要求する必要があります。

$requestToken = $consumer->getRequestToken(array('scope' =>'r_emailaddress'));
于 2012-09-28T05:00:17.197 に答える