gpt4 book ai didi

php - 从 Instagram API 获取结果以在 Wordpress 中使用

转载 作者:行者123 更新时间:2023-12-01 04:42:20 25 4
gpt4 key购买 nike

我一直在为客户端(应用程序)阅读 Instagram 上的基本身份验证。根据我在阅读 cURL 时收集到的信息,大多数帖子都说 cURL 是最好的选择。我还在 Gihub 上找到了一个 Instagram PHP API 包装器,但我认为我不需要走这条路来做我需要的事情。

我想做的是:

函数检查当前用户元数据中的“instagram_user”(Instagram 用户 ID)和“instagram_token”(访问 token )。

如果未设置 usermeta,这意味着他们尚未授权客户端,则会显示指向授权 URL 的链接。他们点击链接,授权应用程序并返回我们的网站。我需要知道如何在数据返回后检索这些数据,以便我可以使用 add_user_meta 将其 token 和 ID 保存到 user_meta 表中。

//Get current user
$user_id = get_current_user_id();
$instagram_userID = get_user_meta($user_id, 'instagram_user', true);
$access_token = get_user_meta($user_id, 'instagram_token', true);

if(!$access_token || !$instagram_userID){
echo '<p style="text-align:center;">You need to authorize Instagram in order to see your feed here.</p><p><a class="btn btn-success" href="https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID-HERE&redirect_uri=http://localhost:8888&response_type=code" title="Click here to verify" style="display:block;margin:0 auto;">Verify Now</a>';
} else { //User is authorized ?>
<div id="user-instagram-feed"></div>
<script type="text/javascript">
jQuery(document).ready(function($)){
var access_token = "ACCESS_TOKEN";
var user_id = "USER_ID";
var url = "https://api.instagram.com/v1/users/"+user_id+"?access_token="+access_token+"&callback=?";
$.getJSON(url, function(data) {
$("#user-instagram-feed").append("<img src='"+data.data.profile_picture+"' />");
});
});
</script>
<?php }

我遇到的问题是,一旦用户授权应用程序并返回我们的网站,如何访问数据对象以提取 token 和用户 ID?

旁注:这应该不会产生影响,但用户提要将位于 buddypress 安装上的小部件中,因此它并不总是我们尝试显示的相同用户提要,这就是我们选择的原因将其保存到数据库并运行条件以查看该用户是否存在。

最佳答案

这是否意味着您尚未获得 instagram_userinstagram_token 值?抱歉,我的英语不太好。

这实际上需要使用 Instagram 登录之类的东西。你尝试过Instagram PHP API图书馆?假设您的回调页面与您编写的代码相同(不过,您应该创建自定义回调页面)。所以,基本上是这样的。

注意:未经测试。我从不使用这个库。

require '../src/Instagram.php';
use MetzWeb\Instagram\Instagram;
if( !session_id() )session_start(); //check whether session isn't started

$instagram = new Instagram(array(
'apiKey' => 'YOUR_APP_KEY',
'apiSecret' => 'YOUR_APP_SECRET',
'apiCallback' => 'YOUR_APP_CALLBACK' //this code's URL
));

$user_id = get_current_user_id();

//Once user returned, get the token then store it (as you wish)
if (isset($_GET['code']){
$data = $instagram->getOAuthToken($code);
$token = $data->access_token;
add_user_meta( $user_id, 'instagram_token', $token);
}

//Get current user
$access_token = get_user_meta($user_id, 'instagram_token', true);
$instagram->setAccessToken($access_token);
$user_ig = $instagram->getUser();
$profile_picture = $user_ig->data->profile_picture;

if(!$access_token || !$instagram_userID){
echo '<p style="text-align:center;">You need to authorize Instagram in order to see your feed here.</p><p><a class="btn btn-success" href="'.$instagram->getLoginUrl().'" title="Click here to verify" style="display:block;margin:0 auto;">Verify Now</a>';
} else { //User is authorized ?>
<div id="user-instagram-feed"></div>
<script type="text/javascript">
jQuery(document).ready(function($)){
$("#user-instagram-feed").append("<img src='<?php echo $profile_picture; ?>' />");
});
</script>
<?php }

关于php - 从 Instagram API 获取结果以在 Wordpress 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com