/** * Get following info for pinner. * * @param string $username * @param string $type * @param int $limit * @return Iterator * @throws WrongFollowingType */ public function following($username, $type = UrlBuilder::FOLLOWING_PEOPLE, $limit = Pagination::DEFAULT_LIMIT) { $followingUrl = UrlBuilder::getFollowingUrlByType($type); if (empty($followingUrl)) { throw new WrongFollowingType("No following results for {$type}"); } return $this->paginate($username, $followingUrl, $limit); }
/** * @param integer $entityId * @return string */ public function createFollowRequestQuery($entityId) { $entityName = $this->getEntityIdName(); $dataJson = ['options' => [$entityName => (string) $entityId], 'context' => []]; if ($entityName == 'interest_id') { $dataJson['options']['interest_list'] = 'favorited'; } $post = ['data' => json_encode($dataJson, JSON_FORCE_OBJECT)]; return UrlBuilder::buildRequestString($post); }
/** * Creates Pinterest API search request. * * @param string $query * @param string $scope * @param array $bookmarks * * @return string */ protected function createSearchQuery($query, $scope, $bookmarks = []) { $dataJson = $this->appendBookMarks($bookmarks, ['scope' => $scope, 'query' => $query]); $request = Request::createRequestData($dataJson, $bookmarks); return UrlBuilder::buildRequestString($request); }
/** * Get recommendations for query word. * * @param $query * @return array|bool */ public function recommendedFor($query) { $requestOptions = ['scope' => 'pins', 'query' => $query]; $result = $this->execGetRequest($requestOptions, UrlBuilder::getSearchUrl()); return $this->getKeywordsFromRequest($result); }
/** * Create request string. * * @param array $data * @param array $bookmarks * * @return string */ public static function createQuery(array $data = [], $bookmarks = []) { $data = empty($data) ? new \stdClass() : $data; $request = self::createRequestData(['options' => $data], $bookmarks); return UrlBuilder::buildRequestString($request); }