PHP에서 Facebook의 공유 수 얻기 (v2.7)

10559 단어 PHPFacebook

소개



「Facebook의 벼 수가 잡히지 않지만」라는 이야기가 왔습니다.
아무래도 최근 업데이트 등으로 얻을 수 없게 된 것 같습니다.
Facebook의 API 주위는 자세하게 업데이트되고 있어, 사양 변경등에 의해 잡히지 않게 되는 일이 있습니다. 이번 변경(또는 오래된 버전의 폐지?)은 2016년 9월경에 있었다는 것이었습니다.

App ID 및 비밀



공유 수를 얻으려면 앱 ID (앱 ID)와 비밀이 필요합니다.

아래 참고 사이트에 따라 Facebook 앱을 만들고 앱 ID와 비밀을 받았습니다.

http://wp-suzaku.com/2016/02/01/【2016년판】facebook-app-id(어플리 id)의 취득 방법/
ㅜㅜㅜㅜㅜㅜㅜㅜㅜ 네 t / b ぉ g /



Facebook API



Facebook API되는 것을 이용하게 됩니다.

ぇぺぺrs. 후세보오 k. 이 m / 및 ls / 에 xp ㄉ r

여기에 로그인하면 여러 가지 시도해 볼 수 있습니다.
GET 요청으로 대체로 무엇이든 할 수 있습니다.

ぇぺぺrs. 후세보오 k. 코 m / 두 cs / g 등 ph-Api / Refuensense / v2.7 / Url

공식 샘플입니다.

코드



FacebookShareCount.php

class FacebookShareCount {

    /**
     * App ID
     * 数字のみで構成される
     *
     * @var string
     */
    private $appid = '';

    /**
     * シークレット
     * 16進数文字列で構成される
     *
     * @var string
     */
    private $appsecret = '';

    /**
     * アクセストークン
     * App IDとシークレットを | で繋げたもの
     *
     * @var string
     */
    private $access_token;

    public function __construct($appid, $appsecret) {
        $this->appid = $appid;
        $this->appsecret = $appsecret;
    }


    /**
     * AppIDとsecretがセットされているかどうかチェックする。
     * 正当性まではチェックしない。
     *
     * @throws Exception
     */
    private function is_valid_token() {
        if ( empty($this->appid) || empty($this->appsecret) ) {
            throw new Exception('Appid or App Secret is not set.');
        }
    }

    /**
     * FBのシェア数を取得する
     *
     * @link https://blog.hello-world.jp.net/api/2221/
     * @link https://graph.facebook.com/http://www.yahoo.co.jp
     *  // https://graph.facebook.com/?id=https://www.yahoo.co.jp にアクセス 
     * @link https://developers.facebook.com/docs/graph-api/reference/v2.7/url
     *
     * @param $permalink string permalink url
     *
     * @return int
     *
     * @throws Exception
     */
    public function get_fb_like_count($permalink) {
        $this->is_valid_token();

        $base_url = 'https://graph.facebook.com/v2.7/'; // OpenGraphプロトコルでアクセスするAPIのエンドポイント
        $parameters = array(
            'id' => urlencode($permalink), // // カウントを取得するURLをエンコードしたもの
            'access_token' => $this->appid .'|'. $this->appsecret,
        );

        $parameter_pair = array();
        foreach ( $parameters as $key => $parameter) { // GETのクエリを=で結ぶ
            $parameter_pair[] = $key . '=' . $parameter;
        }

        $url = $base_url . '?'. implode('&', $parameter_pair);

        $content = file_get_contents($url);
        $json = json_decode($content);
        if ( isset($json->share->share_count) ){
            return $json->share->share_count;
        } else { // 値が無い場合がある (一度もシェアされていない場合
            return 0;
        }
    }
}

sample.php
<?php
include 'FacebookShareCount.php';

main();


function main() {
    $appid = '';
    $secret = '';
    $url = 'http://www.yahoo.co.jp';
    $fsc = new FacebookShareCount($appid, $secret);
    $count = $fsc->get_fb_like_count($url);
    var_dump($count);
}

htps : // 기주 b. 코 m / 요 씨 / 후세 보오 k 멋쟁이 t

Facebook API 만료



Facebook API는 만료일이 있는 것 같습니다.



ぇぺぺrs. 후세보오 k. 코 m / 두 cs / 아 ps / 찬게 g

이번에는 최신 v2.7을 이용했기 때문에 연장이 없으면 2년 미만은 문제 없게 사용할 예정입니다.
반대로 말하면 2년이 지나면 사용할 수 없게 될 가능성이 있으므로 주의가 필요하네요.

기타



페이스 북의 쌀 수, 공유 수를 얻는 코드는 적당히 발견되었습니다만, API의 사용 기한의 관련성도 있어 사용할 수 없는 코드도 많아, 생각보다 시간을 사용했습니다.
API가 버전에 의해 폐지되어 있기 때문인 것 같습니다.
그리고 공식 라이브러리가 있는 것 같습니다만 다 사용할 수 없었습니다. 기회가 있으면 그쪽도 꼭 해보고 싶네요.

좋은 웹페이지 즐겨찾기