Delphi Can

Orjinalini görmek için tıklayınız: Instagram Api Kullanımı
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba delphican ailesi. Kendi ihtiyacım doğrultusunda küçük bir instagram aracı yapmam gerek.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. api sayfasına göz attım. Yeni bir client uygulama kayıtda yaptım. Bana gerekli olan client id, secret ve url aldım.

Dökümana göre ilk önce code almak

function getCode: string;
begin
 FRequest.Method   := TRESTRequestMethod.rmGET;
 FRequest.Resource := '/oauth/authorize/';
 FRequest.AddParameter('client_id', client_id, TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('redirect_uri', URIEncode(redirect_uri), TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('response_type', 'code', TRESTRequestParameterKind.pkGETorPOST);
 FRequest.Execute;
 FRequest.Response.GetSimpleValue('code', Result);
end;

Sonrakı adımda ise code ile token almak lazım.

function getToken(const code: string): string;
begin
 FRequest.Method   := TRESTRequestMethod.rmPOST;
 FRequest.Resource := '/oauth/access_token';
 FRequest.AddParameter('client_id', client_id, TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('client_secret', client_secret, TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('grant_type', 'authorization_code', TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('redirect_uri', URIEncode(redirect_uri), TRESTRequestParameterKind.pkGETorPOST);
 FRequest.AddParameter('code', code, TRESTRequestParameterKind.pkGETorPOST);
 FRequest.Execute;
 Result            := FResponse.Content;
end;

Soun şu ki, ilk code alımı zamanı geri dönüş edilen

http://your-redirect-uri?code=CODE

code alamıyorum.
İkinci satırı böyle dener misiniz?
FRequest.Resource := 'https://api.instagram.com/oauth/authorize/';
(31-03-2018, Saat: 21:02)canbir Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İkinci satırı böyle dener misiniz?
FRequest.Resource := 'https://api.instagram.com/oauth/authorize/';

İyi akşamlar. Projeden küçük bir kod kısmını paylaştım. O api link kullandım. Soruna başka bir çözüm arıyorum. Cevapladığın için teşekkür ederim.
İyi akşamlar. Bir çözüm buldum login işlemine. Bu Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. amma sürüm farklılıkından qaliba 


[dcc32 Error] uInstagramApi.pas(107): E2009 Incompatible types: 'method pointer and regular procedure'

hatasını veriyor.

procedure GetToken(const AURL: String; var DoCloseWebView: boolean);
var
  I: Integer;
  Str: String;
  Params: TStringList;
begin
  I := Pos('#access_token=', AURL);
  if (I > 0) and (FOAuth.AccessToken = FToken) then
  begin
    Str := AURL;
    Delete(Str, 1, I);
    Params := TStringList.Create;
  try
    Params.Delimiter          := '&';
    Params.DelimitedText      := Str;
    FOAuth.AccessToken        := Params.Values['access_token'];
  finally
    Params.Free;
  end;
    FWebForm.Close;
  end;
end;

FWebForm.OnAfterRedirect      := GetToken;
GetToken metodunuzun bir sınıf üyesi olması gerektiğini söylüyor.
(02-04-2018, Saat: 07:44)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.GetToken metodunuzun bir sınıf üyesi olması gerektiğini söylüyor.

İyi akşamlar Tuğrul bey. Cevabınız için teşekkür ederim. Main form altında denedim sorunsuz çalıştı. Hata vermedi. Ben ayrı bir pas dosyasında sınıfsız kullanıyordum. Öylece fonksiyonlar yazmıştım. Düzenleme yapıp sonuç bakacağım.