php - 在laravel php中获取用户instagram帖子api

标签 php laravel instagram

我只是想让用户在我的 Laravel 应用程序中发帖。如果我的用户必须插入他的用户名密码,它甚至可以,因为我想一次抓取所有帖子媒体和文本,然后他们可以更改密码。
对于我到目前为止尝试过的事情:
1-我在此链接中创建了一个应用程序:

https://developers.facebook.com/apps/
然后我生成一个 User Token 和一个 App Token之后我调用了这个 api:
https://graph.instagram.com/17841405793187218?fields=id,username&access_token=myAppToken
我将我的 App token 放在那个 api 中,但这向我显示了这个错误:
{
    "error": {
        "message": "Access token does not contain a valid app ID",
        "type": "OAuthException",
        "code": 190,
        "fbtrace_id": "Agc0R_wnDwoCzgNuXt2gt1y"
    }
}
现在我不知道我是否在正确的火车上,但我只想抓取所有用户的帖子。提前致谢

最佳答案

你应该使用 Laravel Socialite,因为它会简化整个过程。
按照此处的安装说明操作 https://laravel.com/docs/8.x/socialite
不要忘记将 fb 凭据放在您的 config/service.php 中像这样:

 'facebook'        => [
        'client_id'     => env('FACEBOOK_CLIENT_ID'),
        'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
        'redirect'      => env('FACEBOOK_REDIRECT_URL'),
    ],
现在我们已经设置了 Socialite 与 Facebook 一起工作,我们应该将用户重定向到 Facebook 登录页面,在那里它将输入他的凭据。
定义登录路径:
 Route::get('facebook', 'FacebookLoginController@redirectToProvider');
定义 Controller 和方法:
class FacebookLoginController extends Controller
{
    /**
     * Redirect the user to the FB authentication page.
     *
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
     */
    public function redirectToProvider(RedirectToProviderRequest $request)
    {
        return Socialite::driver('facebook')->scopes(['instagram_basic'])->asPopup()->usingGraphVersion('v7.0')->redirect();
    }
}
一旦用户输入了他的凭据并允许您的应用访问他的数据,我们需要获取访问 token 以代表他调用 fb api。
在同一个 Controller 中定义回调路由:
Route::get('facebook/callback','FacebookLoginController@handleProviderCallback');
在 Controller 中定义回调方法:
 public function handleProviderCallback(Request $request)
    {
        if ($request->input('error') == "access_denied")
        {
            return 'user has decline the authorization';
        } 
       
            $user = Socialite::driver('facebook')->usingGraphVersion('v7.0')->user();
            $token = $user->token;
            $refreshToken = $user->refreshToken;
            $id = $user->getId();
    }
从这里开始,您拥有访问 token ( $token ) 来调用 fb api。
请注意,用户可以取消授权,因此可能希望在回调中捕获错误。我没有把所有错误处理的东西都放在里面,因为它会使代码复杂化

关于php - 在laravel php中获取用户instagram帖子api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64918868/

相关文章:

php - 如何添加 "Loading...Please wait..."功能?

php - 如何在 Eloquent ORM 中使用 CASE WHEN?

mysql - 利用大数据更新查询优化

java - 是否可以将图像从我的网络应用程序上传到 Instagram?

javascript - Instagram API : Is it possible to get a tagged photo from a certain date?

php - mv 命令不能从 bash 脚本 php 工作

php - Laravel 示例 web.php 丢失?> 附件

PHP GD图像透视

Laravel 4 : which events does it support/have?

python - 如何通过 http 请求在 Instagram 中获取关注者和关注列表