2013-03-25 2 views
2

사용자가 편집 할 수있는 웹 사이트에 최대 140 자의 텍스트 영역이 있습니다. 두 개의 제출 버튼이 있습니다. 하나는 Facebook에 게시하고 다른 하나는 Twitter에 게시하기위한 버튼입니다. 페이스 북 버튼을 작동시킬 수 있었지만 트위터 버튼을 반쯤 밟았습니다.PHP oText를 사용하여 게시

사용자가 트윗하기 위해 버튼을 클릭하는 순간에만 계정으로 트윗 할 수 있습니다. 이 사용자의 계정으로 이동합니다. PHP에서 내 oAuthToken/Secret을 정의했기 때문에 이것이 실현되었습니다.하지만 사용자 로그인을 요청하는 방법/내 앱을 인증하고 따라서 oAuth 정보를 만들고 사용하는 방법을 모르겠습니다. 나는 여기 또는 다른 곳에서 저에게 도움이되는 답을 찾지 못해서 도움이나 올바른 방향으로의 포인트가 좋을 것입니다!

여기에 지금까지 내 코드입니다 :

<?php if($_SERVER['REQUEST_METHOD'] == "POST") { ?> 

       <?php $statusupdate = $_POST['text']; ?>  
       <?php $socialsubmit = $_POST['socialsubmit']; ?>      

       <?php if($socialsubmit == "share") { ?> 
       <div id="fb-root"></div> 
       <script> 
        window.fbAsyncInit = function() { 
         FB.init({ 
         appId  : '182922938522212', // App ID 
         channelUrl : 'channel.html', // Channel File 
         status  : true, // check login status 
         cookie  : true, // enable cookies to allow the server to access the session 
         xfbml  : true // parse XFBML 
         }); 
         FB.ui({ 
         method: 'feed', 
         name: 'Minty Delivers', 
         caption: 'Same Day Grocery Delivery in Halifax', 
         description: '<?php echo $statusupdate; ?>', 
         link: 'http://www.mintydelivers.com', 
         picture: 'http://www.mintydelivers.com/connect-share.png' 
         }); 
        };      
        // Load the SDK Asynchronously 
        (function(d){ 
         var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
         if (d.getElementById(id)) {return;} 
         js = d.createElement('script'); js.id = id; js.async = true; 
         js.src = "//connect.facebook.net/en_US/all.js"; 
         ref.parentNode.insertBefore(js, ref); 
        }(document)); 

       </script> 
       <?php echo $socialsubmit;?> 
       <?php } else if($socialsubmit == "tweet") { ?> 
        <?php 
        $consumerKey = 'xxx'; 
        $consumerSecret = 'xxx'; 
        $oAuthToken  = 'xxx'; 
        $oAuthSecret = 'xxx'; 

        require_once('tw/twitteroauth.php'); 

        // create a new instance 
        $tweet = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret); 

        //send a tweet 
        $tweet->post('statuses/update', array('status' => $statusupdate)); 
        ?> 
        <div class="alert alert-success"> 
          Your tweet was successfully posted. Thanks for sharing! 
        </div> 
       <?php } ?> 
      <?php } ?> 

      <form id="status-update" action=""; method="post"> 
       <textarea name="text" onKeyPress="return charLimit(this)" onKeyUp="return characterCount(this)">I found this GREAT company called Minty that delivers groceries, wine, flowers and gifts anywhere in Halifax! www.mintydelivers.com</textarea> 

      <p><span id="charCount">9</span> characters left</p> 

      <button id="twitter" class="tweetpopup" name="socialsubmit" value="tweet" type="submit">Tweet This</button> 

      <button id="facebook" name="socialsubmit" value="share" type="submit">Share This</button> 
      </form><!-- end form --> 
+1

을 시도해보십시오이 - http://designspicy.com/learn-how-to-post-on-twitter-using-php- and-oauth / –

답변

1

사용자는 대신 트윗 응용 프로그램에 권한을 부여 할 필요가있다. 트위터로 리디렉션하고 응용 프로그램에 대한 액세스 권한을 부여하는 작업이 포함됩니다. 이 주제에 대한 트위터 워드 프로세서 현재 위치 : PHP는 Temboo의 OAuth를 래퍼 경유에서이 동작을 구현하는

https://dev.twitter.com/docs/auth/obtaining-access-tokens

한 간단한 방법. Temboo는 OAuth 프로세스를 InitializeFinalize이라는 두 개의 호출로 분리합니다. 두 번째 호출은 사용자를 안내하는 데 필요한 트위터 인증 URL을 반환합니다. 이 프로세스의 두 번째 단계에서는 사용자를 대신하여 트윗해야 할 액세스 토큰을 반환합니다. Temboo의 웹 사이트에서 Twitter OAuth를 테스트 한 다음 Temboo PHP SDK를 통해 코드에서 사용할 수 있습니다.

https://www.temboo.com/library/Library/Twitter/OAuth/

(전체 공개 : 나는 Temboo에서 일)