Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 30

0
votes
answers
59 views
+10

將AWS Cognito用戶保存到DynamoDB中

1

我最近開始嘗試使用AWS AppSync,但我對AWS Cognito有一些疑問。將AWS Cognito用戶保存到DynamoDB中

我希望用戶能夠通過Facebook進行身份驗證,但我需要他們的個人資料圖片,姓名和電子郵件作爲我公共用戶配置文件的數據。到目前爲止,我注意到Cognito與Facebook Auth集成,但它不允許訪問用戶信息,並且此信息不會保存在DynamoDB表中。

我的問題是,如何在Cognito接收新登錄時在DynamoDB中創建新用戶,或者當用戶已存在於db中時返回現有用戶/標識。

沙发
0
0

幾周前我試圖達到同樣的效果。

在閱讀了幾個小時的文檔之後,我意識到Cognito可能無法幫助我們處理從FB返回的數據或如何保存它。

最後我做了以下內容:

(1)使用FB-SDK,拉用戶數據。

(2)調用將此數據(如FB_id等)保存到DynamoDB的Lambda函數。 (3)如果用戶再次登錄,則會使用其FB_id(或電子郵件)檢查DynamoDB條目以檢索其數據。

如果Cognito能夠幫助我們,我想不知何故,我很想知道。

快樂編碼!

+0

但後來你會怎麼做授權未來API請求? Cognito會返回一個您可以添加爲標題的jwt,但是我認爲很難用發電機來模擬這種行爲? –

+0

據我瞭解,如果提供的令牌是有效的,Cognito仍然會經歷與FB檢查的整個過程。如果Cognito回來並說其有效並給我一個jwt,然後我會提取用戶詳細信息並處理它在DDB中我自己。 – nishkaush

+0

你碰巧有一些我可以查看的代碼片段嗎?這對我非常有幫助。謝謝你的回覆! –

板凳
0
0

您可以在用戶池中使用custom attributesfederating user from Facebook來實現此目的。以下是在高級別執行此操作的步驟。

  • 您將首先必須爲要保存在每個用戶配置文件中的配置文件信息定義自定義屬性。
  • 定義attribute mapping將自定義屬性鏈接到要保存的Facebook屬性。
  • 使用Cognito hosted pages和聯合生成應用程序以允許用戶使用Facebook登錄。

在此之後,每個新用戶登錄在你的應用程序的新用戶在你的用戶羣創建與屬性映射和價值觀Cognito獲取Facebook的令牌中定義的所有屬性。您的應用將在身份驗證後頒發的IDToken中獲得這些屬性值,您的應用可以使用這些屬性值。此外,如果要將這些屬性值存儲在Cognito用戶池配置文件之外(例如您自己的DynamoDB表),則可以在池中配置將在所有新用戶創建中調用的PreSignUp trigger。您可以將此觸發器的用戶屬性導出到您選擇的任何數據庫。

希望這會有所幫助。

地板
0
0

AWS AppSync允許您訪問您可以選擇存儲在DynamoDB表中的GraphQL解析器中的信息。對於來自Facebook配置文件的數據,您可以將此參數作爲參數傳遞給GraphQL突變或傳遞給AppSync,然後您可以通過$ctx.request.headers.NAME在解析器中訪問,其中NAME是您的標題名稱。然後,您可以簡單地選擇要爲該用戶寫入DynamoDB的屬性作爲突變的一部分。更多信息的參考指南在這裏:https://docs.aws.amazon.com/appsync/latest/devguide/resolver-context-reference.html

既然你還問,你想先做檢查,看用戶是否已經在DDB第一,你可以只是做一個存在性檢查第一:

{ 
    "version": "2017-02-28", 
    "operation": "PutItem", 
    "key": { 
    "userId": $util.dynamodb.toDynamoDBJson($ctx.identity.username), 
    }, 
    "attributeValues": $util.dynamodb.toMapValuesJson($ctx.args.input), 
    "condition": { 
    "expression": "attribute_not_exists(userId)" 
    }, 
} 

這會根據Cognito用戶池中的用戶名進行檢查。如果您使用的是Cognito Federated Identities功能,它將是ctx.identity.cognitoIdentityId。如果記錄已經存在,返回的響應會告訴你哪個意味着用戶已經存在。您還可以通過使用條件語句查看$ctx.result並通過從頭開始構建JSON響應或使用上述指南中的$util.error()方法之一來在響應映射模板中轉換返回的消息。

最後,正如您所提到的,您將擁有公開的個人資料數據,您可能希望在某些記錄上標記以便進行控制。在AWS AppSync中,您可以過濾像這樣的授權元數據上的GraphQL響應。您只需在DynamoDB記錄上標記「公開」或「私有」的屬性(又名列)即可。然後你的迴應範本看起來像這樣:這這裏

#if($context.result.public == 'yes') 
    $utils.toJson($context.result) 
#else 
    $utils.unauthorized() 
#end 

你可以看到更多的例子:https://docs.aws.amazon.com/appsync/latest/devguide/security-authorization-use-cases.html#public-and-private-records

0
votes
answers
79 views
+10

首席營銷形式APi的Facebook的創建錯誤

0

我複製一模一樣的簡單例子鉛表單創建的Facebook (https://developers.facebook.com/docs/marketing-api/guides/lead-ads/create首席營銷形式APi的Facebook的創建錯誤

我使用的API SDK PHP運行$ form.create後() ;我收到這個錯誤..

致命錯誤:未捕獲FacebookAds Http Exception AuthorizationException:(#100)在C: inetpub wwwroot leads vendor中需要參數questions [0] [type] facebook php-ads-sdk src FacebookAds Http Exception RequestException.php:

這是函數代碼。

function create_form($page_id,$form_name,$url_follow,$idlegal,$idcontext){ 
    $form = new LeadgenForm(null, $page_id); 
    $form->setData(array(
    LeadgenFormFields::NAME => $form_name, 
    LeadgenFormFields::FOLLOW_UP_ACTION_URL => $url_follow, 
    LeadgenFormFields::QUESTIONS => array(
     (new LeadGenQuestion())->setData(array(
     LeadgenQuestionFields::TYPE => 'EMAIL', 
     )), 
    ), 
    'context_card_id' => $idcontext, 
    'legal_content_id' => $idlegal, 
)); 
$form->create(); 
} 

$ idcontext $ idlegal最近使用成功的代碼創建。

任何想法?提前致謝!

我debuged直到API:調用和傾倒這個$數據(befor呼叫)

陣列([名稱] => AGENT-TIME_STAMP-標題[follow_up_action_url] =>https://www.site.es/ [問題] =>數組([0 ] => FacebookAds Object LeadGenQuestion Object([data:protected] => Array([key] => [label] => [options] => [type] => EMAIL)[_type_checker:protected] => FacebookAds TypeChecker Object([type_data:FacebookAds TypeChecker:private] => Array([key] => string [label] => string [options] => list [type] => string)[enum_data:FacebookAds TypeChecker:private] => Array [] [primitive_types:FacebookAds TypeChecker:private] => Array([0] => unsigned int [1] => int [2] => bool [3] => string [4] => 5] => datetime [6] => float))))[context_card_id] => 1120914681377 165 legal_content_id] => 1166716330131814)

沙发
0
0

,而不是LeadgenQuestionFields::TYPE => 'EMAIL'

試試這個'type' => 'EMAIL'

+0

LeadgenFormFields ::質詢=>數組( (新LeadGenQuestion()) - >使用setData(陣列( '類型'=> '電子郵件', // LeadgenQuestionFields :: TYPE => '電子郵件', )), –

+0

同樣的錯誤重現... –

板凳
0
1

解決了感謝musashii!

LeadgenFormFields ::質詢=>數組(陣列( '類型'=> 'EMAIL')),

+0

真好!高興你得到它的工作。 – musashii

0
votes
answers
61 views
+10

收集研究參與者的Facebook發佈數據的最佳方法

-2

我正在與一個研究小組合作,這個研究小組需要在幾個月的過程中收集一組參與者的Facebook發佈數據。目標是讓參與者授權我們通過Facebook收集這些信息,當他們發佈到Facebook時,將這些信息發送到安全服務器。收集研究參與者的Facebook發佈數據的最佳方法

閱讀Facebook文檔後,我大多隻是對如何爲用戶提供一種機制來同意收集他/她的數據的條款感到困惑。我正計劃使用webhook來收集獨立於客戶端平臺的數據,但是我真的需要爲Web,iOS和Android構建單獨的應用程序,以供審批嗎?

沙发
0
2

我打算使用webhooks來收集數據,這是獨立於客戶端平臺,但我真的需要爲web,iOS和Android構建單獨的應用程序,僅用於審批過程嗎?

無論如何,您很可能不會在審覈中獲得此批准。

權限必須大部分用於爲應用內用戶體驗提供直接益處;僅爲分析性措施收集數據明確提及爲不允許的用例。用戶是否同意在這裏不相關。

例如,user_posts權限,具有「不可見使用這種數據,如情緒分析或防範垃圾郵件程序」標有紅色「X」爲都能跟得上

因此,讓應用程序向用戶請求必要權限的唯一方法就是通過應用程序面板/ API將它們作爲測試人員添加到應用程序中。任何人都可以在應用程序中發揮作用,可以請求任何許可,也可以不進行審查。然而,在你的應用程序可以將他們的請求發送給測試人員之前,這些用戶必須驗證他們的帳戶(移動/文本,信用卡)並在FB平臺上註冊爲「開發人員」。

可以這麼說,你會在雷達下飛翔。 Facebook提供這個「漏洞」主要是爲了讓開發人員在審查之前正確測試和開發他們的應用程序。在應用程序開發常見問題解答中,也明確提到了這一點,作爲考慮需要的一種方式,可用於特定用例,例如希望自動將您的博客文章發佈到您自己的FB頁面。它不會涵蓋你想要做的事情,但只要你的測試用戶沒有專門向Facebook提出投訴就可能「工作」......

不確定是否有任何發佈的限制可以添加到應用程序的測試用戶數量,人們過去已經詢問過,但AFAIK沒有記錄或由Facebook發佈。如果有一個,並且它不是完全停止這種方法(例如,每個應用程序只有幾百個而不是五個),則可以使用多個應用程序標識,如果不需要關聯數據,則可以使用多個應用程序標識()用戶帳戶太多 - 因爲應用程序範圍的用戶ID會因應用程序ID而有所不同,因此可能會使不同「應用程序ID測試組」中的朋友之間的聯繫變得困難。或者您可能需要引用其他不太可靠的唯一標??識它們的措施,例如電子郵件或個人資料名稱。

+1

順便說一句,根據[測試用戶規則](https://developers.facebook.com/docs/apps/test-users#rules),現在看起來最大測試用戶是2000。 – foundling

+0

@foundling酷,不知道他們現在給一個具體的數字。 – CBroe

0
votes
answers
51 views
+10

Google Analytics(分析)無法跟蹤FB即時文章頁面瀏覽量。

0

即時文章配置幾個月前。我們有近300多篇文章。只要Instant Articles關注,一切工作都正常。Google Analytics(分析)無法跟蹤FB即時文章頁面瀏覽量。

我沒有意識到GA沒有跟蹤Instant Articles中的頁面瀏覽量。我跟着這個https://stackoverflow.com/a/38112027/2657566並添加了全球站點標籤。

這是我的代碼。從Wordpress即時文章插件的界面保存後,當我從手機上打開即時文章時,我沒有看到任何活躍的用戶。

你能否讓我知道如果我錯過了什麼。提前致謝。

<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','https//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-XXXXXXXXX-X', 'auto'); 
    ga('set', 'campaignSource', 'Facebook'); 
    ga('set', 'campaignMedium', 'Facebook Instant Articles'); 
    ga('set', 'referrer', ia_document.referrer); 
    ga('send', 'pageview'); 

</script> 
沙发
0
0

刪除https://開頭,並確保URL是這樣的(如果你願意脊不服務的HTTPS請求)//www.google-analytics.com/analytics.js。

0
votes
answers
59 views
+10

如何在Facebook上分享會計應用深層鏈接與普通鏈接,移動和桌面

0

我工作的一個網站共享功能爲是在移動和桌面使用的網站。我們有一個深度鏈接,我們可以使用它來鏈接到應用程序,並在用戶移動時未安裝應用程序時將用戶帶到應用程序商店。如何在Facebook上分享會計應用深層鏈接與普通鏈接,移動和桌面

這是完美的,但在份額被打開臺式機上的情況下,經驗不足可取。

理想情況下,我們想找到如果他們共享桌面上打開該行動呼籲/按鈕進入到網站的方式。

最壞的情況我認爲我們把一個重定向到該網站點擊應用深層鏈接,當臺式機上。

想法?

沙发
0
0

Branch有這個免費的解決方案。他們的鏈接足夠聰明,可以將桌面用戶引導至網站和移動用戶到商店,如果這正是您想要做的。他們還有一個用於路由和歸屬的SDK。

0
votes
answers
54 views
+10

顯示在列表視圖機器人JSONArray數據 - 的Facebook API

0

我試圖表示列表視圖即JSONArray用戶數據來自Facebook的圖形API響應,顯示在列表視圖機器人JSONArray數據 - 的Facebook API

下面是我想要的代碼:

    try 
        { 
         JSONObject resObject = response.getJSONObject(); 
         JSONArray jsonArray = resObject.getJSONArray("data"); 


         for (int i = 0; i < jsonArray.length(); i++) { 
          JSONObject jsonObject = jsonArray.getJSONObject(i); 


          if(jsonArray.getJSONObject(i).has("likes")) 
          { 

           JSONObject jsonObjectlikes = jsonObject.getJSONObject("likes"); 

           JSONArray jsonArrayLikeData = jsonObjectlikes.getJSONArray("data"); 

           for (int j = 0; j < jsonArrayLikeData.length(); j++) { 

            JSONObject jsonObjectlike = jsonArrayLikeData.getJSONObject(j); 

            String listid = jsonObjectlike.getString("id"); 
            String listname = jsonObjectlike.getString("name"); 
            HashMap<String, String> contact = new HashMap<>(); 
            contact.put("id", listid); 
            contact.put("name", listname); 
            contactList.add(contact); 
           } 

          } 
          ListAdapter adapter = new SimpleAdapter(
            MainActivity.this, contactList, 
            R.layout.activity_listview, new String[]{"id", "name"}, new int[]{R.id.id, 
            R.id.name}); 

          simpleList.setAdapter(adapter); 
         } 
        } 

這裏是JSON:

{ 
    "data": [ 
     { 
     "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxx", 
     "likes": { 
      "data": [ 
       { 
        "id": "xxxx", 
        "name": "xxx" 
       } 
      ], 
     } 
     } 
    ] 
} 

上面的代碼變得喜歡數據,我想表現出簡單的ListView這個數據。

+0

您contactList爲空,甚至沒有初始化一次。那爲什麼 –

+0

@ahsen與有效的Json分享你的完整代碼? – R2R

+0

好的請稍等,讓我編輯 – ahsen

沙发
0
0

試試這個

  1. 添加contactList=new ArrayList<>();

  2. SimpleAdapter適配器=新SimpleAdapter( MainActivity.this,contactList, R.layout.activity_listview,新的String [] { 「ID」,「命名「},新INT [] {R.id.id, R.id.name});

試試這個代碼

public void GetFacebookData() { 

contactList=new ArrayList<>(); 

Bundle parameters = new Bundle(); 
parameters.putString("fields", "likes"); 
parameters.putString("limit", "50"); 
new GraphRequest(
     AccessToken.getCurrentAccessToken(), 
     "/me/posts", 
     parameters, 
     HttpMethod.GET, 
     new GraphRequest.Callback() { 

      public void onCompleted(GraphResponse response) { 
       //Log.v("TAG", "Facebook Photos response: " + response); 

       try 
       { 
        JSONObject resObject = response.getJSONObject(); 
        JSONArray jsonArray = resObject.getJSONArray("data"); 


        for (int i = 0; i < jsonArray.length(); i++) { 
         JSONObject jsonObject = jsonArray.getJSONObject(i); 

         Log.i("ID", "-->" + jsonObject.getString("id")); 

         if(jsonArray.getJSONObject(i).has("likes")) 
         { 

          JSONObject jsonObjectlikes = jsonObject.getJSONObject("likes"); 

          JSONArray jsonArrayLikeData = jsonObjectlikes.getJSONArray("data"); 

          for (int j = 0; j < jsonArrayLikeData.length(); j++) { 

           JSONObject jsonObjectlike = jsonArrayLikeData.getJSONObject(j); 

           String listid = jsonObjectlike.getString("id"); 
           String listname = jsonObjectlike.getString("name"); 
           HashMap<String, String> contact = new HashMap<>(); 
           contact.put("id", listid); 
           contact.put("name", listname); 
           contactList.add(contact); 

           Log.i("Like ID", "-->" + jsonObjectlike.getString("id")); 
           Log.i("Like Name", "-->" + jsonObjectlike.getString("name")); 
          } 

         } 


         SimpleAdapter adapter = new SimpleAdapter(
           MainActivity.this, contactList, 
           R.layout.activity_listview, new String[]{"id", "name"}, new int[]{R.id.id, 
           R.id.name}); 

         simpleList.setAdapter(adapter); 
        } 
       } 
       catch (JSONException e) 
       { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }).executeAsync(); 
}   
+0

它現在的工作感謝兄弟.. :) – ahsen

+0

竭誠爲您服務! – R2R

+0

我收到重複值,可以刪除它們? – ahsen

0
votes
answers
82 views
+10

AWS Cognito用戶羣和Facebook集成

2

唔明FB用戶和AWS Cognito用戶池的授權流程。我跟着this guidAWS Cognito用戶羣和Facebook集成

  • Facebook登錄的應用程序有我的重定向URI https://<cognitoname>.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  • AWS cognito有我的Facebook應用標識和祕密

兩個問題:

1)我期待,當我的Android應用與認證fb(通過登錄按鈕),fb服務器發送一些內容給我的用戶池添加該用戶。這沒有發生。我沒有看到CognitoUser對象中的方法在我的結尾使用fb的loginResult執行此操作。在fb身份驗證時,沒有用戶在用戶池中創建。

2)假設FB用戶都在我的池中創建,我怎麼會叫getSessionInBackground沒有密碼?它看起來不像Android Congito Classes有辦法解決這個問題。

而且,我能夠登錄在FB用戶聯合身份,但我不認爲這是我想,除非用戶池的過程中它的作用。

沙发
0
0

根據您的用例描述,你可能首先使用Cognito的Android SDK驗證得到驗證和保存標記。然後你可以使用Cognito Android CUP SDK來調用getSessionInBackground。

另外一個快速提示: CUP Android SDK中:在進階安全性,適應性驗證,以及新的MFA支持可以從2.6.9版本 Cognito驗證Android SDK中:在進階安全支持可以從2.6.9版本。自適應身份驗證和新的MFA支持將通過支持地區的Springboard提供。

+0

您是指這[getSessionInBackground](http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/mobileconnectors/cognitoidentityprovider/CognitoUser.html#getSession-com.amazonaws.mobileconnectors。 cognitoidentityprovider.handlers.AuthenticationHandler-)?這需要AuthenticationHandler回調,它需要一個密碼,我沒有,因爲他們通過Facebook授權。 – jamescharlesworth

0
votes
answers
70 views
+10

如何重定向到最後一個環節登錄後從谷歌在PHP?

1

我想用戶重定向到通過Gmail登錄後最後一個環節,FB如何重定向到最後一個環節登錄後從谷歌在PHP?

這裏有四件事情我試過,但沒有得到成功

1)用戶$_SERVER['HTTP_REFERER']但它重定向我回Gmail的,而不是最後一個鏈接在我的網站上。

2)使用$_SESSION - 我嘗試在會議最後的URL存儲登錄之前,但登錄後的會話是空的我不明白它的價值。

3)使用Cookie - 我也嘗試使用cokkies,但它也沒有工作

4)我嘗試最後的URL發送作爲重定向URL $_GET參數,但這樣做,阻止谷歌登錄爲網址不符到谷歌應用程序中存儲的網址。

是否有任何其他方式才達到的呢?

沙发
0
1

我看不出爲什麼使用cookie是行不通的。將用戶重定向到授權服務器之前,存儲在cookie中的URL。當作爲用戶重定向回redirect_uri,該網頁確實另一重定向存儲在cookie中的URL。

但我喜歡,你在請求??中包含更好「最後一頁URL」(清單上的第4個元素)的版本。由於Google顯然不允許在他們的OAuth配置中使用通配符,因此您可以改用state參數。從RFC 6749 - The OAuth 2.0 Authorization Framework

state 
    RECOMMENDED. An opaque value used by the client to maintain 
    state between the request and callback. The authorization 
    server includes this value when redirecting the user-agent back 
    to the client. The parameter SHOULD be used for preventing 
    cross-site request forgery as described in Section 10.12. 

當你建立你的重定向URL,你只需設置state參數,像這樣:

https://accounts.google.com/o/oauth2/v2/auth 
    ?client_id=MY_CLIENT_ID 
    &redirect_uri=http://example.com/oauth-redirect_uri 
    &scope=REQUESTED_SCOPES 
    &state=http://example.com/last-page-the-user-loaded 

根據您的OAuth流,授權服務器將用戶重定向到一個網址看起來有點像這樣在成功授權:

http://example.com/oauth-redirect_uri 
    ?code=CODE 
    &state=http://example.com/last-page-the-user-loaded 

你的服務器,則可以處理state參數並相應地重定向用戶。

+0

中設置或獲取本地存儲值感謝您的回答@paolo我會試試這個,並讓您知道它是否有效。 –

+0

感謝狀態參數解決方案爲谷歌登錄工作..是否有這樣的參數在Facebook登錄也?因爲我無法在其中找到狀態參數 –

+0

如果他們遵循OAuth協議並已完全實施它,則這應該與Google相同。但我對Facebook登錄一無所知,抱歉。 – paolo

板凳
0
1

你會被檢查,如果用戶登錄或不具有某種功能,如果沒有,你將採取用戶登錄哪個用戶可以登錄使用谷歌或FB頁面。 假設此, 我會說,在會議之前的鏈接存儲在其中,如果用戶或沒有登錄您檢查相同的功能,

我寫的代碼片段,你可以從它那裏得到的想法編寫您的特定代碼。

if(isset($_SERVER['HTTP_REFERER'])) 
{ 
    $_SESSION['url_to_go'] = $_SERVER['HTTP_REFERER']; 
} 

當成功用戶登錄,檢查會話密鑰url_to_go存在,然後將用戶重定向到的鏈接或者帶他到儀表板或您有任何默認頁。

所以,至於你說的時候,才從社交網站恢復會話是否清零,可以使用localStorage與JS(瀏覽器存儲)存儲$_SERVER['HTTP_REFERER'],當你回來,你可以檢索它之後,你清除使用一次。

+0

沒有登錄頁面,每個頁面都有一個彈出窗口,其中包含fb/google登錄按鈕。我嘗試使用會話,但從社交媒體返回後,$ _SESSION被清除 –

+0

ok @VinitSingh,我已經用另一種解決方案更新了我的答案。閱讀最後一段 –

+0

@VinitSingh,你試過了嗎? –

0
votes
answers
57 views
+10

Instagram的數據對於Python Facebook的API

1

我嘗試基於通過圖形APIInstagram的數據對於Python Facebook的API

impressions= graph.get_object(id='17881493329146188', fields='reach') 

我收到以下錯誤發現Instagram的帖子ID訪問Instagram的信息覆蓋率:

GraphAPIError: (#100) Tried accessing nonexisting field (reach) on node type (ShadowIGMedia) 

有什麼通過Facebook API Python包裝器成功檢索Instagram帖子的覆蓋面的方法?

沙发
0
0

Reach不是介質上的字段,而是在insights下的對象。你可以這樣做:

impressions = graph.get_object(id='17881493329146188', fields='insights.metric(reach)')

取決於什麼類型的對象,它是的,你可能需要指定period等領域,例如fields='insights.metric(reach).period(lifetime)'

0
votes
answers
37 views
+10

像Facebook Messenger和WhatsApp這樣的應用程序如何發送和接收消息

-1

嗨,大家好,我正在考慮儘快製作一個API,以供網絡,Android和iOS應用程序使用,我正在考慮在其中實現消息功能。我試圖主要理解Facebook Messenger和WhatsApp等應用程序的「接收」方面。我知道用戶發送消息給服務器的發送方式,它保存在數據庫中,但服務器如何將消息發送到接收設備。某種形式的長期投票?像Facebook Messenger和WhatsApp這樣的應用程序如何發送和接收消息

+0

長輪詢是一個請求模型,你的模型正在尋找的是推動模式。而不是請求事件並處理它們,這個模型獲取事件並處理它們 – Kushan

沙发
0
0

不同的應用傾向於使用不同的服務來接收和發送推送消息。在這裏描述或列出這是一個非常廣泛的話題。下面是在我看來,流行的:

火力地堡雲消息(谷歌的可擴展基礎架構)https://firebase.google.com/docs/cloud-messaging/]

Onesignal [https://onesignal.com/]

PubNub [https://www.pubnub.com/]

還有許多其他的服務在那裏,只是谷歌推消息解決方案更多

+0

因此,大多數應用程序在收到推送通知後,在後臺或前臺運行服務以從服務器下載消息?這似乎是一件合乎邏輯的事情,如果我錯了,請糾正我。 @Kushan – ThatOneQuestionn

+0

是的,你說得很對......如果你看看他們的正在運行的服務,你通常會看到一個正在運行的服務,這是爲了傾聽推送消息 – Kushan

+0

感謝你的回答,真的很感激@Kushan – ThatOneQuestionn