【问题标题】:autoposting to Twitter and Facebook using PHP? [closed]使用 PHP 自动发布到 Twitter 和 Facebook? [关闭]
【发布时间】:2011-05-13 04:52:57
【问题描述】:

当我系统上的用户在我的网站上发布内容时,他们可以将其自动发布到他们的社交网络,如 Facebook 和 Twitter。如何在 php 中解决这样的问题?我知道我必须访问他们的 api,然后...

【问题讨论】:

    标签: php json api facebook twitter


    【解决方案1】:

    您可以这样做,但您必须登录 twitter 或 facebook。您需要 oauth 才能连接到 twitter 服务。您可以在 dev.twitter.com 上找到实现此目的的库

    【讨论】:

      【解决方案2】:

      如果您有 WordPress 博客,您可以安装众多插件中的一种。

      您可以通过将应用程序密钥放置在插件设置中来访问 API。

      对于 API 密钥,您需要注册一个 facebook 应用程序。

      【讨论】:

        【解决方案3】:

        这是 twitter 中更新/状态的代码:

        $body = array(
            'status'=>'YOURMESSAGE'
        );
        $url = "https://api.twitter.com/1.1/statuses/update.json";
        $oauth_access_token = "YOURVALUE";
        $oauth_access_token_secret = "YOURVALUE";
        $consumer_key = "YOURVALUE";
        $consumer_secret = "YOURVALUE";
        
        $oauth = array( 'oauth_consumer_key' => $consumer_key,
            'oauth_nonce' => time(),
            'oauth_signature_method' => 'HMAC-SHA1',
            'oauth_token' => $oauth_access_token,
            'oauth_timestamp' => time(),
            'oauth_version' => '1.0');
        
        $base_info = buildBaseString($url, 'POST', $oauth);
        $composite_key = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
        $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
        $oauth['oauth_signature'] = $oauth_signature;
        $header = array(buildAuthorizationHeader($oauth), 'Expect:');
        $options = array( CURLOPT_HTTPHEADER => $header,
            CURLOPT_POSTFIELDS => $body,
            CURLOPT_HEADER => false,
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYPEER => false);
        
        $feed = curl_init();
        curl_setopt_array($feed, $options);
        $json = curl_exec($feed);
        curl_close($feed);
        
        $result_data = json_decode($json);
        
        function buildBaseString($baseURI, $method, $params) {
        $r = array();
        ksort($params);
        foreach($params as $key=>$value){
            $r[] = "$key=" . rawurlencode($value);
        }
        return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
        }
        
        function buildAuthorizationHeader($oauth) {
        $r = 'Authorization: OAuth ';
        $values = array();
        foreach($oauth as $key=>$value)
            $values[] = "$key=\"" . rawurlencode($value) . "\"";
        $r .= implode(', ', $values);
        return $r;
        }
        

        在 Facebook 上:

        $Body = array(
                'access_token' => 'YOURVALUE',
                'message'=>'YOURMESSAGE',
                'link'=>'YOURLINK'
            );
        
        
            $headers = array
            (
                'Content-Type: application/json'
            );
        
            $ch = curl_init();
            curl_setopt( $ch,CURLOPT_URL, 'https://graph.facebook.com/v3.1/feed' );
            curl_setopt( $ch,CURLOPT_POST, true );
            curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
            curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
            curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
            curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $Body ) );
            curl_exec($ch );
            curl_close( $ch );
        

        【讨论】:

          猜你喜欢
          • 2013-03-13
          • 2012-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多