[英]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.