php – TwitterOAuth:未捕获的异常’此功能暂时不可用’
发布时间:2020-12-13 16:57:44 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Wordpress中的应用程序,该应用程序允许用户使用他们的Twitter帐户登录,然后将用户重定向到表单.在提交该表单时,会向用户的Twitter句柄发送一条推文.我正在使用亚伯拉罕的twitteroauth来实现Twitter OAuth. Twitter登录成功后重定向模板的源代码:
我正在使用Wordpress中的应用程序,该应用程序允许用户使用他们的Twitter帐户登录,然后将用户重定向到表单.在提交该表单时,会向用户的Twitter句柄发送一条推文.我正在使用亚伯拉罕的twitteroauth来实现Twitter OAuth.
Twitter登录成功后重定向模板的源代码: <pre> <?php /* *Template Name: Callback */ ?> <?php session_start(); require "twitteroauth/autoload.php"; use AbrahamTwitterOAuthTwitterOAuth; define('CONSUMER_KEY',"XXXXXXXXXXXXXXX"); define('CONSUMER_SECRET',"XXXXXXXXXXXXXX"); define('OAUTH_CALLBACK'," http://localhost/wordpress/index.php/callback/"); $request_token = []; $request_token['oauth_token'] = $_SESSION['oauth_token']; $request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret']; if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) { echo "Opps! Something went wrong!"; } else { $connection = new TwitterOAuth(CONSUMER_KEY,CONSUMER_SECRET,$request_token['oauth_token'],$request_token['oauth_token_secret']); $access_token = $connection->oauth("oauth/access_token",array("oauth_verifier" => $_REQUEST['oauth_verifier'])); //print_r($access_token); $_SESSION['access_token'] = $access_token; } $access_token = $_SESSION['access_token']; $connection = new TwitterOAuth(CONSUMER_KEY,$access_token['oauth_token'],$access_token['oauth_token_secret']); //$user = $connection->get("account/verify_credentials"); //$response = $connection->post("statuses/update",array('status' => 'fsociety')) //$response = $tmhOAuth->request('POST',$tmhOAuth->url('1.1/statuses/update'),array( //'status' => 'Conceit to fall on parasol.' ?> <script> var count = 0 function addNewMessage(count) { if(count > 5) { window.alert("NO MORE THAN 5!"); } else { var celeb = document.createElement("input"); celeb.type = "text"; celeb.name = "tweet" + count; celeb.placeholder = "Tweet" + " " + count; celebrity.appendChild(celeb); var date = document.createElement("input"); date.type = "datetime-local"; date.name = "date" + count; date.placeholder = "message-date" + " " + count; celebrity.appendChild(date); celebrity.appendChild(document.createElement("br")); celebrity.appendChild(document.createElement("br")); } } </script> <form method = "POST" action = ""> <fieldset> <a style = "color:red" onclick = "addNewMessage(++count)">Schedule a tweet</a> <div id = "celebrity"/> </fieldset> <br> <fieldset> <input type="hidden" name="submitted" id="submitted" value="true" /> <?php wp_nonce_field( 'post_nonce','post_nonce_field' ); ?> <button type="submit"><?php _e('Add Campaign','framework') ?></button> </fieldset> </form> <?php if ( isset( $_POST['submitted'] )) { $response = $connection->post("statuses/update",array('status' => 'fsociety')); } ?> </pre> 在提交表单时,我使用亚伯拉罕的twitteroauth在用户的Twitter时间轴上发布推文,我试图按如下方式实现: <?php if ( isset( $_POST['submitted'] )) { $response = $connection->post("statuses/update",array('status' => 'fsociety')); } ?> 但是,这是我遇到的错误: Fatal error: Uncaught exception 'AbrahamTwitterOAuthTwitterOAuthException' with message 'This feature is temporarily unavailable' in /opt/lampp/htdocs/wordpress/wp-content/themes/twentyfifteen/tuto/twitteroauth/src/TwitterOAuth.php:137 Stack trace: #0 /opt/lampp/htdocs/wordpress/wp-content/themes/twentyfifteen/tuto/callback.php(30): AbrahamTwitterOAuthTwitterOAuth->oauth('oauth/access_to...',Array) #1 /opt/lampp/htdocs/wordpress/wp-includes/template-loader.php(74): include('/opt/lampp/htdo...') #2 /opt/lampp/htdocs/wordpress/wp-blog-header.php(16): require_once('/opt/lampp/htdo...') #3 /opt/lampp/htdocs/wordpress/index.php(17): require('/opt/lampp/htdo...') #4 {main} thrown in /opt/lampp/htdocs/wordpress/wp-content/themes/twentyfifteen/tuto/twitteroauth/src/TwitterOAuth.php on line 137 我通过打印$access_token尝试调试,我确实从OAuth提供程序中获取了一个唯一的令牌. 我的代码似乎有什么问题,我怎么能避免提出异常? 解决方法
当oauth函数检查返回的代码是否为200时,抛出异常. 我刚遇到同样的问题,现在效果很好: 您是否在应用设置上添加了回调网址? Twitter使用此设置>使用localhost:127.0.0.1/callback.php(然后在定义OAUTH_CALLBACK中使用geteven(OAUTH_CALLBACK)) 然后使用verify_credentials (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |