Başlayın
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Genel bakış
Digital Asset Links protokolü ve API, bir uygulamanın veya web sitesinin diğer uygulamalar veya web siteleri hakkında herkese açık, doğrulanabilir açıklamalar yayınlamasını sağlar. Örneğin, bir web sitesi belirli bir Android uygulamasıyla ilişkili olduğunu veya kullanıcı kimlik bilgilerini başka bir web sitesiyle paylaşmak istediğini beyan edebilir.
Dijital Öğe Bağlantılarının olası bazı kullanımları şunlardır:
- Web Sitesi A, site bağlantılarının mobil cihazlarda (uygulama yüklüyse) belirli bir uygulamada açılması gerektiğini beyan eder.
- Web Sitesi A, kullanıcının A web sitesine giriş yapması halinde kullanıcının B web sitesine giriş yapmak zorunda kalmaması için Chrome kullanıcı kimlik bilgilerini B web sitesiyle paylaşabileceğini beyan eder.
- A uygulaması, konum gibi cihaz ayarlarını B web sitesiyle paylaşabileceğini beyan eder.
Anahtar terimler
- Müdür: Müdür, açıklamayı yapan uygulama veya web sitesidir. Digital Asset Links'te ana hesap, her zaman ifade listesini barındıran uygulama veya web sitesidir.
- İfade listesi: İfadeler, bir veya daha fazla ifade içeren bir ifade listesinde bulunur. Beyan listesi, ana hesabın kontrolünde olan ve adres sahteciliği veya müdahale edilmesi zor bir konumda bulunan, açık metin olup herkesin erişimine açıktır.
Bağımsız bir dosya veya daha büyük bir öğenin bir bölümü olabilir. Örneğin, web sitesinde dosyanın tamamıdır; Android uygulamalarında ise uygulama manifest dosyasındaki bir bölümdür.
İfadeler, özel olmayan yöntemler kullanılarak herkes tarafından görüntülenip doğrulanabilir. Daha fazla bilgi için beyan listesi belgelerine bakın.
- İfade: İfade, bir relation (deyimin yapması gerektiğini söylediği şey, örneğin: Kimlik bilgilerini paylaşmayı etkinleştir) ve bir relation (ilişkinin geçerli olduğu web sitesi veya uygulama) oluşan, sıkı yapılandırılmış bir JSON yapısıdır. Bu nedenle, her ifade bir cümle gibidir. Burada ana_para ifadesi hedef ile ilgili ilişki ifade eder.
- Tüketici beyanı: İfade tüketicisi, bir ana hesaptan bir beyan listesi ister, belirli bir ana hesaba göre bir ifadenin varlığını kontrol eder ve varsa belirtilen işlemi gerçekleştirebilir. Daha fazla bilgi için devam eden dokümanlara bakın.
Hızlı kullanım örneği
Aşağıda, www.example.com web sitesinin, söz konusu sitedeki URL'lere giden bağlantıların tarayıcı yerine özel bir uygulamada açılması gerektiğini belirtmek için Dijital Öğe Bağlantılarını nasıl kullanabileceğine ilişkin çok basit bir örnek verilmiştir:
- www.example.com web sitesi, https://www.example.com/.well-known/assetlinks.json adresinde bir beyan listesi yayınlıyor. Bu, bir sitedeki beyan listesinin resmi adı ve konumudur. Başka herhangi bir konumdaki veya başka bir ada sahip beyan listeleri bu site için geçerli değildir. Örneğimizde ifade listesi, Android uygulamasına sitesinde bağlantıları açma izni veren bir ifadeden oluşur:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "com.example.app",
"sha256_cert_fingerprints": ["hash_of_app_certificate"] }
}]
İfade listesi, [ ] işaretleri içindeki bir ifade dizisini destekler ancak örnek dosyamız yalnızca bir ifade içerir.
sha256_cert_fingerprints
, uygulamanızın imza sertifikasının SHA256 parmak izidir.
Daha fazla bilgiyi Android App Links dokümanlarında bulabilirsiniz.
- Yukarıdaki ifadede listelenen Android uygulaması, işlemek istediği URL'lerin şema, ana makine ve yol kalıbını belirten bir intent filtresine
(bu örnekte https://www.example.com) sahiptir. Intent filtresi, Android M'de yeni olan
android:autoVerify
özel bir özelliğini içerir. Bu özellik, Android'in uygulama yüklendiğinde intent filtresinde açıklanan web sitesindeki ifadeyi doğrulaması gerektiğini belirtir.
- Bir kullanıcı uygulamayı yükler. Android,
autoVerify
özelliğiyle intent filtresini görür ve belirtilen sitede ifade listesinin olup olmadığını kontrol eder. Varsa Android, bu dosyanın uygulamaya bağlantı işleme izni veren bir ifade içerip içermediğini kontrol eder ve uygulamayı sertifika karması ile ifadeye göre doğrular. Her şey yolundaysa Android tüm https://www.example.com intent'lerini example.com uygulamasına yönlendirir.
- Kullanıcı, cihazında https://www.example.com/kopeklere yönlendiren bir bağlantıyı tıklar. Bu bağlantı herhangi bir yerde olabilir: tarayıcıda, Google Search Cihazı önerilerinde veya başka herhangi bir yerde. Android, amacı example.com uygulamasına yönlendirir.
- example.com uygulaması amacı alır ve uygulamadaki yavru köpekler sayfasını açarak bunu işlemeyi seçer. Herhangi bir nedenle uygulama bağlantıyı işlemeyi reddetmişse veya uygulama cihazda değilse bağlantı, bu niyet kalıbıyla eşleşen bir sonraki varsayılan amaç işleyiciye (genellikle tarayıcı) gönderilir.
Dikkat edilmesi gereken önemli noktalar ve sınırlamalar:
- Protokol, ifadeyi yapan ana hesabın kimliğini doğrulamaz ancak ifade, ana hesapla güçlü bir şekilde ilişkili olan ve ana hesabın kontrolü altında belirli bir konumda yer alır.
- Protokol, ifade hedefinin kimliğini doğrulamaz ancak çağrıyı yapanın hedefin kimliğini doğrulaması için bir yöntem sağlar (örneğin, bir ifade, mobil uygulama hedeflerini sertifika karması ve paket adına göre tanımlar).
- Protokol yerel olarak herhangi bir ifade işlemi gerçekleştirmez. Bunun yerine, tüketen bir uygulamanın doğrulaması gereken ve ardından eylemde bulunup bulunmayacağına ve nasıl hareket edeceğine karar vermesi gereken ifadeleri kullanıma sunmak için kullanılır. Android M, bu adımları sizin için yerel olarak gerçekleştirir. Örneğin, bir web sitesi belirli bir uygulama için bağlantı işleme yetkisi verirse Android, ifadeyi kontrol edip doğrular, hedef uygulamayı doğrular ve ardından uygulamaya, belirtilen bağlantıyı işleme seçeneği sunar.
- Protokol, iki üçüncü taraf hakkında beyanların yapılmasını sağlamaz: Yani, A web sitesi B web sitesi hakkında bir açıklama yapabilir ancak A web sitesi, B web sitesi ile C web sitesiyle ilişkisi hakkında bir beyanda bulunamaz. Ancak B web sitesi A web sitesine güveniyorsa A web sitesinde C web sitesine izin veren bir ifade olup olmadığını kontrol edip bunu uygulamaya karar verebilir.
Sonraki adımlar
- Kullanım alanınızla ilgili açık bir doküman olup olmadığına bakın.
- Açıklama metni oluşturma hakkında bilgi edinin.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2024-06-26 UTC.
[null,null,["Son güncelleme tarihi: 2024-06-26 UTC."],[[["\u003cp\u003eDigital Asset Links enable apps and websites to make verifiable statements about their relationships with other apps and websites, such as link handling or credential sharing.\u003c/p\u003e\n"],["\u003cp\u003eThese statements are stored in a publicly accessible statement list, typically an "assetlinks.json" file hosted by the app or website making the statement.\u003c/p\u003e\n"],["\u003cp\u003eAndroid M and above automatically uses Digital Asset Links to verify website-to-app associations and direct links to the appropriate app if installed.\u003c/p\u003e\n"],["\u003cp\u003eThe protocol provides a foundation for trust and delegation between digital entities but relies on consumers to validate and act upon the statements.\u003c/p\u003e\n"]]],[],null,["# Getting Started\n\nOverview\n--------\n\nThe Digital Asset Links protocol and API enable an app or website to make public,\nverifiable *statements* about other apps or websites. For example, a website\ncan declare that it is associated with a specific Android app, or it can declare that\nit wants to share user credentials with another website.\n\nHere are some possible uses for Digital Asset Links:\n\n- Website A declares that links to its site should open in a designated app on mobile devices, if the app is installed.\n- Website A declares that it can share its Chrome user credentials with website B so that the user won't have to log in to website B if it is logged into website A.\n- App A declares that it can share device settings, such as location, with website B.\n\n### Key terms\n\n- **Principal:** The principal is the app or website making the statement. In Digital Asset Links, the principal is always the app or website that hosts the statement list.\n- **Statement list** : Statements are contained in a *statement list* that contains one or more statements. A statement list is cleartext and publicly accessible, in a location that is controlled by the principal and difficult to spoof or tamper with. It can be a free-standing file, or a section of another, larger item. For example, on a website, it is an entire file; in an Android app, it is a section in the app manifest. Statements can be viewed and verified by anyone, using non-proprietary methods. [See the statement list documentation for more information](/digital-asset-links/v1/create-statement).\n- **Statement:** A statement is a tightly structured JSON construct that consists of a *relation* (what the statement says to do, for example: Enable sharing credentials) and a *target* (the website or app that the relation applies to). Therefore, each statement is like a sentence, where *principal* says *relation* about *target* . \n- **Statement consumer:** A statement consumer requests a statement list from a principal, checks for the presence of a statement against a given principal, and if it exists, can perform the action specified. [See the statement comsuming documentation for more information](/digital-asset-links/v1/consuming)*.*\n\nQuick usage example\n-------------------\n\nHere's a very simplified example of how the website www.example.com could\nuse Digital Asset Links to specify that any links to URLs in that site should\nopen in a designated app rather than the browser:\n\n1. The website www.example.com publishes a statement list at https://www.example.com/.well-known/assetlinks.json. This is the official name and location for a statement list on a site; statement lists in any other location, or with any other name, are not valid for this site. In our example, the statement list consists of one statement, granting its Android app the permission to open links on its site: \n\n ```\n [{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\" : { \"namespace\": \"android_app\", \"package_name\": \"com.example.app\",\n \"sha256_cert_fingerprints\": [\"hash_of_app_certificate\"] }\n }]\n ```\n A statement list supports an array of statements within the \\[ \\] marks, but our example file contains only one statement. `sha256_cert_fingerprints` is the SHA256 fingerprints of your app's signing certificate. Find more details in the [Android App Links documentation](https://developer.android.com/training/app-links/verify-android-applinks#web-assoc).\n2. The Android app listed in the statement above has an intent filter that specifies the scheme, host, and path pattern of URLs that it wants to handle: in this case, https://www.example.com. The intent filter includes a special attribute `android:autoVerify`, new to Android M, which indicates that Android should verify the statement on the website described in the intent filter when the app is installed.\n3. A user installs the app. Android sees the intent filter with the `autoVerify` attribute and checks for the presence of the statement list at the specified site; if present, Android checks whether that file includes a statement granting link handling to the app, and verifies the app against the statement by certificate hash. If everything checks out, Android will then forward any https://www.example.com intents to the example.com app.\n4. The user clicks a link to https://www.example.com/puppies on their device. This link could be anywhere: in a browser, in a Google Search Appliance suggestion, or anywhere else. Android forwards the intent to the example.com app.\n5. The example.com app receives the intent and chooses to handle it, opening the puppies page in the app. If for some reason the app had declined to handle the link, or if the app were not on the device, then the link would have been sent to the next default intent handler matching that intent pattern (often the browser).\n\nImportant considerations and limitations:\n-----------------------------------------\n\n- The protocol does not authenticate the principal making the statement, but the statement is located in a specific location strongly associated with the principal, and under control of the principal.\n- The protocol does not authenticate the statement target, but it provides a means for the caller to authenticate the target (for example, a statement identifies mobile app targets by certificate hash and package name).\n- The protocol does not natively perform any statement actions; rather, it enables the ability to expose statements, which a consuming application must validate and then decide whether and how to act upon. Android M natively performs these steps for you; for example, if a website delegates link handling to a specific app, Android checks and verifies the statement, verifies the target app, and then offers the app the option to handle the given link.\n- The protocol does not enable making statements about two third parties: that is, website A can make a statement about website B, but website A cannot make a statement about website B's relationship to website C. However, if website B trusts website A, it can check website A for a statement granting permission to website C, and decide to implement that.\n\nNext steps\n----------\n\n1. [See if there is explicit documentation for your use case.](/digital-asset-links/v1/using)\n2. [Learn about creating a statement.](/digital-asset-links/v1/create-statement)"]]