rotha / rt-instagram-sdk-php
这是PHP中Instagram私有API的非官方SDK
dev-main
2021-06-21 10:44 UTC
Requires
- php: >=5.5
- ext-curl: *
- netresearch/jsonmapper: ^1.0
- php-curl-class/php-curl-class: ^7.3
- ramsey/uuid: ^4.0
This package is auto-updated.
Last update: 2024-09-21 18:27:45 UTC
README
这是PHP中Instagram私有API的非官方SDK
动机
我决定构建这个项目,因为我在Instagram私有API中发现的大多数库都不是基于OOP的,且难以使用。
捐赠
如果您喜欢这个项目,请考虑向我咖啡成瘾基金捐款,这样我就可以继续提交代码!
Paypal: 捐赠比特币: 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();
会话管理
为了避免每次都登录,您可以使用saveSession和initFromSavedSession方法。
脚本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.或其附属公司或子公司没有任何关联、授权、维护、赞助或认可。
我,项目所有者和创建者,对使用此项目可能产生的任何法律问题不承担责任。自行承担风险。