簡體   English   中英

在laravel php中獲取用戶instagram帖子api

[英]getting the users instagram posts api in laravel php

我只是想讓用戶在我的 Laravel 應用程序中發帖。 如果我的用戶必須插入他的用戶名密碼,它甚至可以,因為我想一次抓取所有帖子媒體和文本,然后他們可以更改密碼。 對於我到目前為止所嘗試的問題:1-我在此鏈接中創建了一個應用程序:

https://developers.facebook.com/apps/

然后我生成一個User Token和一個App Token之后我調用了這個 api:

https://graph.instagram.com/17841405793187218?fields=id,username&access_token=myAppToken

我將我的 App 令牌放在那個 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');

定義控制器和方法:

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();
    }
}

一旦用戶輸入了他的憑據並允許您的應用訪問他的數據,我們需要獲取訪問令牌以代表他調用 fb api。
在同一個控制器中定義回調路由:

Route::get('facebook/callback','FacebookLoginController@handleProviderCallback');

在控制器中定義回調方法:

 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 ) 來調用 fb api。

請注意,用戶可以取消授權,因此可能希望在回調中捕獲錯誤。 我沒有把所有錯誤處理的東西都放在里面,因為它會使代碼復雜化

查看文檔,我認為應該使用應用程序密鑰來生成訪問令牌,請查看此步驟:第 5步:在文檔中交換代碼以獲取令牌https : //developers.facebook.com/docs/instagram -basic-display-api/入門

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM