Yayınımız yeniliklerle beraber yeni sitemizden devam ediyor. Seditio.com.tr takip edin.
<?php
/*
------------------------------
--> Explanation of functions:
------------------------------
* getDA( $urlToDA )
----------------------->
Description:
- Function prepared to return the Domain Authority (DA) as a rounded integer that measures the MOZ platform.
Parameters:
- $urlToDA: String type URL --> xxx.com, www.xxx.com, etc.
Return:
- A rounded integer corresponding to the DA of that URL according to MOZ.
To consider:
- Due to the limitations of the free account, a delay of 11 seconds between call and call must be put.
- In addition to the DA, $content array, returns other data that can be observed with a print_r($ content); at line 65.
*/
function getDA( $urlToDA ){
// Get your access id and secret key here: https://moz.com/products/api/keys
$accessID = "your-MOZ-accessID";
$secretKey = "your-MOZ-secretKey";
// Set your expires times for several minutes into the future.
// An expires time excessively far in the future will not be honored by the Mozscape API.
$expires = time() + 300;
// Put each parameter on a new line.
$stringToSign = $accessID."\n".$expires;
// Get the "raw" or binary output of the hmac hash.
$binarySignature = hash_hmac('sha1', $stringToSign, $secretKey, true);
// Base64-encode it and then url-encode that.
$urlSafeSignature = urlencode(base64_encode($binarySignature));
// Specify the URL that you want link metrics for.
$objectURL = $urlToDA;
// Add up all the bit flags you want returned.
// Learn more here: https://moz.com/help/guides/moz-api/mozscape/api-reference/url-metrics
$cols = "103079215108";
// Put it all together and you get your request URL.
// This example uses the Mozscape URL Metrics API.
$requestUrl = "http://lsapi.seomoz.com/linkscape/url-metrics/".urlencode($objectURL)."?Cols=".$cols."&AccessID=".$accessID."&Expires=".$expires."&Signature=".$urlSafeSignature;
// Use Curl to send off your request.
$options = array(
CURLOPT_RETURNTRANSFER => true
);
$ch = curl_init($requestUrl);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
curl_close($ch);
//print_r($content); // Uncommnet to check full results
$array1 = explode(',', $content);
$array2 = explode(":", $array1[0]);
sleep(11); // We waited 11 seconds (delay required for the Moz API with free account)
return (int)round($array2[1]); // We return the DA as rounded INT
}
?>
Moz API v2 - PHP Library
<?php
/** Moz API v2 - PHP Library
* ================================================================================
* PHP library to wrap the moz v2 api in PHP. All functions described at request a bunch of SEO-relevant metrics, such as looking up the
* visibilty of a URL within organic search results, Pagespeed analysis, the
* Google Toolbar PageRank, Page-Authority, Backlink-Details, Traffic Statistics,
* social media relevance, comparing competing websites and a lot more.
* ================================================================================
* LICENSE: Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software'),
* to deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is furnished
* to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* ================================================================================
*/
class Moz {
private $endpoint_url = "https://lsapi.seomoz.com/v2";
private $access_id = null;
private $secret = null;
/*
* construct
* prepares the object for execution
*
* @params $access string
* @params $secret string
* @return object
*/
function __construct($access_id,$secret)
{
$this->access_id = $access_id;
$this->secret = $secret;
}
/*
* anchorText
* Get metrics about anchor text used by followed external links to a target. Results are ordered by 'external_root_domains' descending.
*
* @param $target string
* @param $scope string
* @param $limit int
* @param $next_token string
* @return object
*/
public function anchorText($target,$scope="page",$limit = 50,$next_token=null) {
$requestUrl = $this->endpoint_url . "/anchor_text";
$data["target"] = $target;
$data["scope"] = $scope;
$data["limit"] = $limit;
if ($next_token !== null)
$data['next_token'] = $next_token;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* finalRedirect
* Returns the final redirect target of a page after following known redirects in the index. If no redirects are known, returns an empty response.
*
* @param $page string
* @return object
*/
public function finalRedirect($page) {
$requestUrl = $this->endpoint_url . "/final_redirect";
$data['page'] = $page;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* globalTopPages
* Returns the top 500 pages in the entire index with the highest page authority values, sorted by page authority.
*
* @param $limit int
* @param $next_token string
* @return object
*/
public function globalTopPages($limit = 50,$nextToken = null) {
$requestUrl = $this->endpoint_url . "/global_top_pages";
$data['limit'] = $limit;
if ($nextToken !== null)
$data['next_token'] = $nextToken;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* globalTopRootDomains
* Returns the top 500 root domains in the entire index with the highest domain authority values, sorted by domain authority.
*
* @param $limit int
* @param $next_token string
* @return object
*/
public function globalTopRootDomains($limit = 50,$nextToken = null) {
$requestUrl = $this->endpoint_url . "/global_top_root_domains";
$data['limit'] = $limit;
if ($nextToken !== null)
$data['next_token'] = $nextToken;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* indexMetaData
* Returns an id that changes when the data in the index changes.
*
* @return object
*/
public function indexMetaData() {
$requestUrl = $this->endpoint_url . "/index_metadata";
return json_decode($this->file_post_contents($requestUrl,"{}"));
}
/*
* linkIntersect
* Get sources that link to at least one of a list of positive targets and don't link to any of a list of negative targets.
* Please note: This is a weighted endpoint which means that data returned from this endpoint will count as more than 1 row consumed when data is requested. Please see here for more information on weighted endpoints.
*
* @param $positiveTargets array
* @param $negativeTargets array
* @param $min_matching_targets number
* @param $source_scope string
* @param $sort string
* @param $limit int
* @param $next_token string
* @return object
*/
public function linkIntersect($positiveTargets, $negativeTargets = [], $min_matching_targets = null, $source_scope = "page", $sort = null, $limit = 50) {
$requestUrl = $this->endpoint_url . "/link_intersect";
$data['positive_targets'] = $positiveTargets;
$data["negative_targets"] = $negativeTargets;
if ($min_matching_targets !== null)
$data["min_matching_targets"] = $min_matching_targets;
$data["source_scope"] = $source_scope;
$data["sort"] = $sort;
$data["limit"] = $limit;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* linkStatus
* Get information about links from many sources to a single target
* Please note: This is a weighted endpoint which means that data returned from this endpoint will count as more than 1 row consumed when data is requested. Please see here for more information on weighted endpoints.*
*
* @param $sources array
* @param $target string
* @param $target_scope string
* @param $source_scope string
* @return object
*/
public function linkStatus($sources,$target,$target_scope="page",$source_scope="page") {
$requestUrl = $this->endpoint_url . "/link_status";
$data['sources'] = $sources;
$data["target"] = $target;
$data["target_scope"] = $target_scope;
$data["source_scope"] = $source_scope;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* linkingRootDomains
* Get linking root domains to a target
*
* @param $target string
* @param $target_scope string
* @param $sort string
* @param $filter string
* @param $begin_date string
* @param $end_date string
* @param $limit int
* @param $next_token string
* @return object
*/
public function linkingRootDomains($target,$target_scope="page",$sort="source_domain_authority",$filter = "external",$begin_date = null,$end_date = null,$limit = 50,$next_token=null) {
$requestUrl = $this->endpoint_url . "/linking_root_domains";
$data["target"] = $target;
$data["target_scope"] = $target_scope;
if ($sort !== null)
$data["sort"] = $sort;
$data["filter"] = $filter;
if ($begin_date !== null)
$data["begin_date"] = $begin_date;
if ($end_date !== null)
$data["end_date"] = $end_date;
$data["limit"] = $limit;
if ($next_token !== null)
$data['next_token'] = $next_token;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* linkingRootDomains
* Get linking root domains to a target
*
* @param $target string
* @param $target_scope string
* @param $sort string
* @param $filter string
* @param $anchor_text string
* @param $source_root_domain string
* @param $source_scope string
* @param $subdomains_limited_to_one array
* @param $limit int
* @param $next_token string
* @return object
*/
public function linkMetrics($target,$scope="subdomain",$sort=null,$filter = "all",$anchor_text = null,$source_root_domain = null,$source_scope = null,$subdomains_limited_to_one = [],$limit = 50,$next_token=null) {
//retrieve a list of all the backlinks to a domain or page
$requestUrl = $this->endpoint_url . "/links";
$data["target"] = $target;
$data["target_scope"] = $scope;
if ($sort !== null)
$data["sort"] = $sort;
$data["filter"] = $filter;
$data["anchor_text"] = $anchor_text;
$data["source_root_domain"] = $source_root_domain;
$data["source_scope"] = $source_scope;
$data["subdomains_limited_to_one"] = $subdomains_limited_to_one;
$data["limit"] = $limit;
if ($next_token !== null)
$data['next_token'] = $next_token;
var_dump($data);
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* topPages
* Get linking root domains to a target
*
* @param $target string
* @param $scope string
* @param $sort string
* @param $filter string
* @param $daily_history_deltas array
* @param $daily_history_values array
* @param $monthly_history_deltas array
* @param $monthly_history_values array
* @param $limit int
* @param $next_token string
* @return object
*/
public function topPages($target,$scope="subdomain",$sort="page_authority",$filter = "all",$daily_history_deltas = [],$daily_history_values = [],$monthly_history_deltas = [],$monthly_history_values = [],$limit = 50,$next_token=null) {
//get a list of the top pages for the domain
$requestUrl = $this->endpoint_url . "/top_pages";
$data["target"] = $target;
$data["scope"] = $scope;
$data["sort"] = $sort;
$data["filter"] = $filter;
$data["daily_history_deltas"] = $daily_history_deltas;
$data["daily_history_values"] = $daily_history_values;
$data["monthly_history_deltas"] = $monthly_history_deltas;
$data["monthly_history_values"] = $monthly_history_values;
$data["limit"] = $limit;
if ($next_token !== null)
$data['next_token'] = $next_token;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* urlMetrics
* Get metrics about one or more urls.
* Please note: This is a weighted endpoint which means that data returned from this endpoint may count as more than 1 row consumed based on the data requested. Please see here for more information on weighted endpoints and multiplier logic specific to the URL Metrics endpoint.
*
* @param $targets array
* @param $daily_history_deltas array
* @param $daily_history_values array
* @param $monthly_history_deltas array
* @param $monthly_history_values array
* @param $distributions boolean
* @return object
*/
public function urlMetrics($targets,$daily_history_deltas = [],$daily_history_values = [],$monthly_history_deltas = [],$monthly_history_values = [],$distributions = false) {
//get the url metrics for the domain
$requestUrl = $this->endpoint_url . "/url_metrics";
$data["targets"] = $targets;
$data["daily_history_deltas"] = $daily_history_deltas;
$data["daily_history_values"] = $daily_history_values;
$data["monthly_history_deltas"] = $monthly_history_deltas;
$data["monthly_history_values"] = $monthly_history_values;
$data["distributions"] = $distributions;
return json_decode($this->file_post_contents($requestUrl,json_encode($data)));
}
/*
* usageData
* Returns the number of rows consumed so far in the current billing period.
* The count returned might not reflect rows consumed in the last hour.
* The count returned reflects rows consumed by requests to both the v1 (Mozscape) and v2 Links APIs.
*
* @return object
*/
public function usageData() {
$requestUrl = $this->endpoint_url . "/usage_data";
return json_decode($this->file_post_contents($requestUrl,"{}"));
}
/*
* file_post_contents
* Generates the authentication and triggers the JSON POST request to the api.
*
* @params $url string
* @params $data json encoded string
* @return object
*/
private function file_post_contents($url, $data) {
$opts = array('http' =>
array(
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n".
("Authorization: Basic " . base64_encode($this->access_id . ":" . $this->secret)),
'content-length' => strlen($data),
'content' => $data,
)
);
$context = stream_context_create($opts);
return file_get_contents($url, false, $context);
}
}