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 Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 33

0
votes
answers
9 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
8 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
7 views
+10

Facebook SDK返回不正確的事件時間

0

我有一個網站,顯示來自網站所有者的Facebook頁面的事件。幾個星期前,有人注意到網站上的事件時間顯示錯誤,但他們在幾年內都是正確的。所以基本上我試圖找出問題所在。Facebook SDK返回不正確的事件時間

下面是一個例子

事件X擁有2017-12-18T17的開始時間時間戳:00:00-0500。那個日期是正確的,那個時間 - 1700或5:00 - 是正確的時間。

所以我有這樣的代碼的時間戳轉換的東西我可以顯示

$start_time = date('g:i a', strtotime($event['start_time'])); 

這返回的10:00 PM

時間我與結束時間不正確地轉換了同樣的問題。

我使用此代碼轉換的日期(使用上述相同的時間戳):

$start_date = date('l, F j, Y', strtotime($event['start_time'])); 

這將返回正確的日期,這讓我困惑甚至更多,因爲如果日期正確轉換,請問該怎麼時間不正確轉換?

有人可以幫助我得到轉換的時間,所以我可以在網站上獲得這些事件嗎?

+0

看起來像不同的時區問題。 –

+0

'date('P')'的輸出是什麼? – Ben

+0

@本日期('P')輸出爲+00:00 –

沙发
0
1

這是不同的時區問題。

你有一個帶時區的日期時間-05:00但是,date('P')輸出,你的服務器時區是+00:00。您可以使用DateTime類將日期時間轉換爲您想要的時區。

// convert time to datetime instance 
$timestamp = strtotime($event['start_time']); 
$datetime = new DateTime; 
$datetime->setTimestamp($timestamp); 

// set timezone to US/Eastern, Eastern Standard Time (EST), UTC -5 
$datetime->setTimezone(new DateTimeZone('US/Eastern')); 

// output datetime format 
$datetime->format('g:i a'); 
$datetime->format('l, F j, Y'); 
+0

您是一位紳士和學者。謝謝! –

0
votes
answers
7 views
+10

在websocket uri中傳遞參數react-native不起作用

1

我需要爲我的react-native應用程序實現websocket連接。
我的問題是我總是得到:在websocket uri中傳遞參數react-native不起作用

無法設置 WS://www.needseek.com:31337 partyId = 「a3e75250-d1a3-11e7-9116-a7b8f75cfbc6」 & sessionToken =「eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9。 eyJwYXJ0eUlkIjoiYTNlNzUyNTAtZDFhMy0xMWU3LTkxMTYtYTdiOGY3NWNmYmM2Iiwibm9uY2UiOiIxNTExNTkxNTQyNDE3MDAiLCJpYXQiOjE1MTE1OTE1NDJ9.HVfHRlXbcUZgkTFfL42YGd0LGtCUjnJuQ5ju3S1alOk」 作爲默認原點頭。

下面是我使用的代碼:

let wsUrl = 'ws://www.needseek.com:31337?partyId="' + user.profile.partyId + '"&sessionToken="'+ user.sessionToken + '"'; 
console.log('Websocket Url', wsUrl); 

var ws = new WebSocket(wsUrl); 

ws.onopen =() => { 
    // connection opened 
    ws.send('Connection open..'); 
    console.log('Connection open..'); 
}; 

ws.onmessage = (e) => { 
    // a message was received 
    console.log(e.data); 
}; 

ws.onerror = (e) => { 
    // an error occurred 
    console.log(e.message); 
}; 

ws.onclose = (e) => { 
    // connection closed 
    console.log(e.code, e.reason); 
}; 

而且,我讀到實現的WebSocket的反應本地文件 - >https://facebook.github.io/react-native/docs/network.html

沙发
0
0

我找到了答案。只需使用encodeURI()語法並在將websocket url傳遞給WebSocket實例之前。

let wsUrl = encodeURI('ws://www.needseek.com:31337?partyId="' + user.profile.partyId + '"&sessionToken="'+ user.sessionToken + '"'); 
console.log('Websocket Url', wsUrl); 

var ws = new WebSocket(wsUrl); 

這對我有用。

0
votes
answers
7 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
6 views
+10

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

0

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

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

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

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

想法?

沙发
0
0

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

0
votes
answers
6 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
5 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
5 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
5 views
+10

如何取消訂閱所有Facebook頁面的應用程序Webhooks

1

我有一個訂閱超過20,000頁的Facebook應用程序。服務器無法處理所有這些Facebook頁面的鉤子,我想從所有這些Facebook頁面取消訂閱我的應用程序。有沒有更快的方法來做到這一點。我擁有的大部分頁面訪問令牌都已過期,因此我無法循環瀏覽所有頁面並從其中取消訂閱我的應用。如何取消訂閱所有Facebook頁面的應用程序Webhooks

沙发
0
1

要從Facebook頁面取消訂閱您的應用程序,您不需要頁面中的令牌。所有你需要的是你的應用程序訪問令牌。從頁面退訂只是做一個DELETE HTTP請求:

https://graph.facebook.com/{page_id}/subscribed_apps?access_token={your_access_token} 

您可以通過發送GET請求來獲取你的應用程序訪問令牌:

https://graph.facebook.com/oauth/access_token 
    ?client_id={app-id} 
    &client_secret={app-secret} 
    &grant_type=client_credentials 

因此,只要一個DELETE請求到每一頁你想取消訂閱。