rotha/rt-instagram-sdk-php

这是PHP中Instagram私有API的非官方SDK

dev-main 2021-06-21 10:44 UTC

This package is auto-updated.

Last update: 2024-09-21 18:27:45 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads Daily Downloads

这是PHP中Instagram私有API的非官方SDK

动机

我决定构建这个项目,因为我在Instagram私有API中发现的大多数库都不是基于OOP的,且难以使用。

捐赠

如果您喜欢这个项目,请考虑向我咖啡成瘾基金捐款,这样我就可以继续提交代码!

  • Paypal Paypal: 捐赠
  • btc 比特币: 1814x9kioBxPDBCQx8oaty7e6Z3DAosucd

安装

Composer

composer require noxzemart/rt-instagram-sdk-php
require("../vendor/autoload.php");
$instagram = new \Instagram\Instagram();

如果您想测试master分支中的代码,该分支尚未作为发布版推送,可以使用dev-main

composer require noxzemart/rt-instagram-sdk-php dev-main

没有Composer?

什么?!在这里获取: https://composer.php.ac.cn/

示例

示例可以在examples文件夹中查看。

用法

登录

读取: 会话管理,以避免在每个脚本中调用login

$instagram->login("username", "password");

时间线流

  • $maxId: string (可选) 用于分页
$instagram->getTimelineFeed($maxId);

用户流

  • $userId: string|User 要获取流的用户或用户ID
  • $maxId: string (可选) 用于分页
$instagram->getUserFeed($userId, $maxId);

我的用户流

  • $maxId: string (可选) 用于分页
$instagram->getMyUserFeed($maxId);

点赞流

  • $maxId: string (可选) 用于分页
$instagram->getLikedFeed($maxId);

标签流

  • $tag: string 标签
  • $maxId: string (可选) 用于分页
$instagram->getTagFeed($tag, $maxId);

位置流

  • $locationId: string|Location 要获取流的地点或地点ID
  • $maxId: string (可选) 用于分页
$instagram->getLocationFeed($locationId, $maxId);

用户标签流

  • $userId: string|User 要获取标签流的用户或用户ID
  • $maxId: string (可选) 用于分页
$instagram->getUserTagsFeed($userId, $maxId);

点赞媒体

  • $mediaId: string|FeedItem 要点赞的FeedItem或FeedItem ID
$instagram->likeMedia($mediaId);

取消点赞媒体

  • $mediaId: string|FeedItem 要取消点赞的FeedItem或FeedItem ID
$instagram->unlikeMedia($mediaId);

删除媒体

  • $mediaId: string|FeedItem 要删除的FeedItem或FeedItem ID
  • $mediaType: int 媒体类型(在DeleteMediaRequest类中可用的常量)
$instagram->deleteMedia($mediaId, $mediaType);

对媒体评论

  • $mediaId: string|FeedItem 要评论的FeedItem或FeedItem ID
  • $comment: string 评论
$instagram->commentOnMedia($mediaId, $comment);

获取媒体评论

  • $mediaId: string|FeedItem 要获取评论的媒体FeedItem或FeedItem ID
  • $maxId: string (可选) 用于分页
$instagram->getMediaComments($mediaId, $maxId);

删除媒体评论

  • $mediaId: string|FeedItem 要删除评论的FeedItem或FeedItem ID
  • $commentIds: array 要删除的评论ID
$instagram->deleteCommentsFromMedia($mediaId, $commentIds);

用户信息

  • $userId: string|User 要获取信息的用户或用户ID
$instagram->getUserInfo($userId);

用户关注者

  • $userId: string|User 要获取关注者的用户或用户ID
  • $maxId: string (可选) 用于分页
$instagram->getUserFollowers($userId, $maxId);

用户关注列表

  • $userId: string|User 要获取关注列表的用户或用户ID
  • $maxId: string (可选) 用于分页
$instagram->getUserFollowing($userId, $maxId);

地理媒体

  • $userId: string|User 要获取地理媒体的用户或用户ID
$instagram->getUserMap($userId);

媒体信息

  • $mediaId: string|FeedItem 要获取信息的FeedItem或FeedItem ID
$instagram->getMediaInfo($mediaId);

当前用户账户

$instagram->getCurrentUserAccount();

编辑用户资料

  • $firstname: string 名字
  • $email: string 电子邮件
  • $phoneNumber:string 电话号码
  • $gender:int 性别(可在User类中找到的常量)
  • $biography:string: 个人简介
  • $externalUrl:string 外部网址
$instagram->editUserProfile($firstname, $email, $phoneNumber, $gender, $biography, $externalUrl);

设置账户公开

$instagram->setAccountPublic();

设置账户私有

$instagram->setAccountPrivate();

显示好友关系

  • $userId:string|User 显示好友关系的用户或用户ID
$instagram->showFriendship($userId);

关注用户

  • $userId:string|User 要关注的用户或用户ID
$instagram->followUser($userId);

取消关注用户

  • $userId:string|User 要取消关注的用户或用户ID
$instagram->unfollowUser($userId);

阻止用户

  • $userId:string|User 要阻止的用户或用户ID
$instagram->blockUser($userId);

取消阻止用户

  • $userId:string|User 要取消阻止的用户或用户ID
$instagram->unblockUser($userId);

搜索标签

  • $query:string 要搜索的标签
$instagram->searchTags($query);

搜索用户

  • $query:string 要搜索的用户
$instagram->searchUsers($query);

搜索地点(Facebook)

  • $query:string 要搜索的地点
$instagram->searchFacebookPlaces($query);
  • $latitude:string 纬度
  • $longitude:string 经度
$instagram->searchFacebookPlacesByLocation($latitude, $longitude);

更改个人资料图片

  • $path:string 要上传的个人资料图片的文件路径
$instagram->changeProfilePicture($path);

移除个人资料图片

$instagram->removeProfilePicture();

发布照片

  • $path:string 要发布的照片的文件路径
  • $caption:string 这张照片的标题
$instagram->postPhoto($path, $caption);

编辑媒体

  • $mediaId:string|FeedItem 要编辑的FeedItem或FeedItem ID
  • $caption:string 这段媒体的标题
$instagram->editMedia($mediaId, $caption);

通过用户名获取用户

  • $username:string 要查找的用户名
$instagram->getUserByUsername($username);

登出

$instagram->logout();

会话管理

为了避免每次都登录,您可以使用saveSessioninitFromSavedSession方法。

脚本1

//Login
$instagram->login("username", "password");

//Serialize the Session into a JSON string
$savedSession = $instagram->saveSession();

//Store $savedSession in Database, or Cookie etc

脚本2

//Load $savedSession from Database or Cookie etc
$savedSession = ...;

//Init from Saved Session
$instagram->initFromSavedSession($savedSession);

//Session is Restored, do something!
$instagram-> ...;

附加功能

分页

一些Instagram端点返回分页数据。

要访问数据的下一页,您需要从响应对象中获取下一个最大ID,并将其作为nextMaxId参数传递给相同的方法。

示例

//Get TimelineFeed
$timelineFeed = $instagram->getTimelineFeed();

//This will be null if there are no more pages.
$nextMaxId = $timelineFeed->getNextMaxId();

//We have another page of Items
if($nextMaxId != null){
	//Get the next page.
	$timelineFeed = $instagram->getTimelineFeed($nextMaxId);
}

代理

在您的服务器和Instagram API之间使用代理

$instagram->setProxy("127.0.0.1:8888");

可选的用户名/密码认证

$instagram->setProxy("127.0.0.1:8888", "proxyUsername", "proxyPassword");

启用或禁用对等验证,以便与Charles Proxy等进行测试。

$instagram->setVerifyPeer(false);

待办事项

  • 收件箱
  • 直接分享
  • 最近活动
  • 注册新账户
  • 上传和发布视频

贡献

如果您想为这个项目做出贡献,请随时提交一个pull请求。

在这样做之前,请查看问题,看看您想要贡献的功能是否已经在开发中。

许可证

MIT

法律

"Instagram"是Instagram, Inc.的版权。

此项目与Instagram, Inc.或其附属公司或子公司没有任何关联、授权、维护、赞助或认可。

我,项目所有者和创建者,对使用此项目可能产生的任何法律问题不承担责任。自行承担风险。