使用Instagram API处理用户授权

时间:2014-11-24 20:43:33

标签: php instagram instagram-api

我正在构建一个非常简单的Web应用程序。用户使用Instagram登录后,我无法处理代码返回。我还使用其他API来帮助我,您可以在此处找到它:https://github.com/cosenary/Instagram-PHP-API

我的主页登录用户,你可以看到下面的PHP代码

<?php

require 'Instagram.php';
use MetzWeb\Instagram\Instagram;

// initialize class
     $instagram = new Instagram(array(
     'apiKey'      => 'YOUR_APP_KEY',
     'apiSecret'   => 'YOUR_APP_SECRET',
     'apiCallback' => 'YOUR_APP_CALLBACK' // must point to success.php
     ));

// create login URL
 $loginUrl = $instagram->getLoginUrl();

?>

用户已成功发送到Instagram登录页面,但是当他们授权我的应用程序时,Instagram会以http://your-redirect-uri?code=CODE回复。下一页无法呈现。

您可以看到&#34;成功&#34;的代码。应该在下面显示的页面。

/**
* Instagram PHP API
*
* @link https://github.com/cosenary/Instagram-PHP-API
* @author Christian Metz
* @since 01.10.2013
*/

require_once 'Instagram.php';
use MetzWeb\Instagram\Instagram;

// initialize class
$instagram = new Instagram(array(
'apiKey'      => 'YOUR_APP_KEY',
'apiSecret'   => 'YOUR_APP_SECRET',
'apiCallback' => 'YOUR_APP_CALLBACK' // must point to success.php
));

// receive OAuth code parameter
$code = $_GET['code'];

// check whether the user has granted access
if (isset($code)) {

// receive OAuth token object
$data = $instagram->getOAuthToken($code);
$username = $username = $data->user->username;

// store user access token
$instagram->setAccessToken($data);

// now you have access to all authenticated user methods
$result = $instagram->getUserMedia();

} else {

// check whether an error occurred
if (isset($_GET['error'])) {
echo 'An error occurred: ' . $_GET['error_description'];
}

}

?>

如果用户取消授权请求,那么&#34;成功&#34;页面正确呈现并显示正确的错误消息。所以我相信我的问题在于处理Instagram返回到我的网络应用程序的代码参数。谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

检查YOUR_APP_CALLBACK重定向网址是否正确 - 它应该与Instagram应用程序中的相同。请在此处查看有关可接受的重定向网址的指南:http://instagram.com/developer/authentication/

只要设置了$_GET['code'];,那么插件应该处理剩下的事情,所以我会检查它是否也被设置了。

如果您还没有这样做,请查看插件示例here。 这应该让你开始。